私は静的な最終フィールドを持つクラスがあり、私は自分のコンテキストからそれらを初期化したい。これを行うことができますか?それとも別の解決策を探す必要がありますか?Springのコンテキストから静的な最終パラメータを設定する方法は?
答えて
final
変数が効果的に初期化時に一度だけ定義する必要が定数であるので、あなたは、春(または一般にJavaを使用)でこれを行うことはできません。しかし、見る:Java 5 - "final" is not final anymore。
それはその仕事how'd、final
ですか?
あなたは非に割り当てることができます - 非反射のJavaを使用して、通常のセッターを提供することにより、final
静的変数。 Tomaszが述べたように、最終的なフィールドを設定するためにリフレクションを使用することができます。 「マットB」でのコメントに基づいて
'final'は追記型変数です。 'private final String'を使ってクラスを作成し、初期化せずに、コンストラクタのパラメータ値に基づいてコンストラクタの値を設定します。 – DwB
@DwBあなたはctor注入ができればいいです。これは必ずしも可能ではありません。 –
あなたは変数宣言から最終的に削除し、セッターで機能を「一度設定」を実装することができます。例えば
:
private static String blammy = null;
public String getBlammy() { return blammy; }
public void setBlammy(String newValue)
{
if (StringUtils.isNotBlank(newValue)) // only set to a non blank value.
{
if (blammy == null) // set once functionality
{
blammy = newValue;
}
}
}
- 1. 静的ブロックとコンテキスト・パラメータのプロパティ・ファイル値の設定
- 2. Javaの静的コンテキストでメンバーインターフェイスを定義する方法は?
- 3. getclass()。getResource()を静的コンテキストから取得する方法?
- 4. 静的メソッドによって設定されている最終的な静的変数をモックする方法はありますか?
- 5. Spring DIで使用するJavaの静的最終選択肢
- 6. Spring-Boot :: SpringコンテキストXMLからJava設定への変換
- 7. Spring XMLコンテキスト:プロパティ - プレースホルダーからJava Springへのコンフィグ設定
- 8. asp.netの静的メソッドからテキストボックスに値を設定する方法は?
- 9. maven-assembly-pluginバージョン3で最終的なjar名を設定する方法
- 10. spring @RestControllerサーブレットでget queryパラメータ名を設定する方法は?
- 11. 一時的なリソースの障害を回復/処理するためにSpringコンテキストを設定する方法
- 12. スプリングブートアプリケーション - 静的コンテキストからBeanを取得
- 13. 静的ファイル用にKoaのベースを設定する方法は?
- 14. なぜ「静的でない変数から静的なコンテキストから参照できないのですか?」
- 15. 静的最終定数がnullになる
- 16. 最終的な静的な文字列は、静的な最終的な文字列より効率的ですか?
- 17. 最終的にMySQL上でutf8mb4を正しく設定する方法は?
- 18. 静的コンテンツを提供するSpring Socialの設定
- 19. 非静的フィールドは静的、コンテキストMainメソッド
- 20. 最終的なクラス変数をGWTで静的にする
- 21. Eclipseで非最終的な静的変数を検索する
- 22. GoogleクラウドCDNから静的コンテンツを取得するexpress.staticの設定方法
- 23. 静的なAmazon S3コンテンツと動的ヒーローコンテンツのプロキシを設定する最も簡単な方法
- 24. 静的クラスをデータコンテキストに設定する方法は?
- 25. Tornadoで静的パスを設定する方法は?
- 26. 静的プロパティをnilに設定する方法は?
- 27. 静的メソッドでDataGridViewを設定する方法は?
- 28. CDI Beanは、最終的な方法
- 29. 静的ファクトリメソッドを最終的にするべきですか?
- 30. java:非静的変数を静的コンテキストから参照できないError
は、彼らが私はこれが動作しないだろう、最終的に宣言されている;) – HefferWolf
最も簡単な解決策は、問題は、あなたが初期化しなければならないということになります '静的final'修飾子 –
を削除することです(つまり、セット) 'final'変数の値を返します。リフレクションを使用して変数の「最終性」を「破る」ことなくこれを行うことはできません。 – DwB