私には、static final
という変数が必要なクラスがあります。Spring DIで使用するJavaの静的最終選択肢
public static final Map<String, Long> ID_MAP;
私は、Springを介してマップを注入できるようにしたかったのです。これはできませんb/cそれはstatic final
です。私の代わりにstatic
と宣言し、セッターでSpringを使用しました。何かのように
これは、別のクラスが値を変更することができることを意味します。私が試すことができる選択肢はありますか?私はマップを持つシングルトンをfinal
フィールドとして考えていましたが、私はまだマップを渡す方法と、final
というマークが付いた他の変数をgetInstance
メソッドに渡す方法を見つけました。また、私は、最もシンプルで複雑なソリューションを探すのに苦労しています。
最も単純で複雑な解決策は、マップを非最終的にすることです。ある意味では、実行時に変更されているので、実際には最終的に最終的なものではありません。 – pap