使用java reflectionリフレクション対象のすべてのクラスが静的コンストラクタを実行することに気付きました。これらの静的コンストラクタを強制的に戻したり、実行したりすることはできますか?Java静的初期化子とリフレクション
2
A
答えて
7
0
私は何Bozhoが答えることは今短すぎると思うので、私は、私の答えを追加;)
リフレクションだけそれを初期化しないクラスをロードし、クラスを初期化することができます。たとえば、静的フィールドから値を要求すると、実際の値を取得する前に静的イニシャライザが呼び出されます。フィールドを取得するだけでは通常得られません。したがって、あなたのリフレクションコードが静的イニシャライザを実行させ、実際にそれを正確に行う必要がある場合、イニシャライザが呼び出されないようにする方法はありません。あなたが彼らが呼び出されることを避けたい場合は、あなたが反射で行うことを変更する必要があります。
関連する問題
- 1. Java静的初期化ブロック
- 2. 静的メンバーの初期化子のラムダスコープ
- 3. 春の静的初期化Springの静的初期化
- 4. 静的変数の初期化java
- 5. C++で静的初期化子とデストラクタを見つける
- 6. g ++、静的初期化と-nostdlib
- 7. Swiftでパラメータ化された初期化子のリフレクション
- 8. Pythonに静的コンストラクタまたは静的初期化子がありますか?
- 9. 初期化子の初期化子
- 10. Javaの静的初期化子が冗長であるようです
- 11. 非静的データメンバの初期化子の質問
- 12. クラスローディング時のObjective-Cの静的初期化子
- 13. C++静的constテンプレートメンバの初期化
- 14. Goでの静的初期化?
- 15. 整数配列の静的初期化
- 16. 静的なboost :: unordered_mapの初期化
- 17. 静的フィールド/プロパティの初期化
- 18. 順序初期化静的パラメータ
- 19. PHP静的変数の初期化
- 20. C、スキップ初期化静的配列
- 21. 非静的変数の初期化
- 22. ジェネリック静的フィールドの初期化
- 23. Javaの静的初期化ブロックから戻す方法
- 24. Javaの静的初期化ブロックからの切断
- 25. 抽象クラスとサブクラスでの静的変数の初期化
- 26. C++静的変数の初期化とスレッド
- 27. 静的配列の宣言と初期化
- 28. C++ - 静的クラスメンバーの初期化と変更
- 29. c#TypeInitializationException静的コンストラクタ内のジェネリックコレクションを初期化するとき
- 30. 遅延静的クラスメンバ初期
私の推測はこの質問には無意味ですが、SOの集約された知識をチェックアウトするだけです – fmsf