3
私は次の問題に直面しています。誰もがそれがなぜそう理解できるのか? また、2番目のシナリオを作成する際の考えを共有してください。@Named注釈にキーを動的に渡す
これは、任意のコンパイルの問題もなく動作しますが、
private final String var ="US"; @Inject @Named (var) private Validator validator;
これは、 コンパイル・エラーがコンパイルエラーを与えている:
「注釈属性Named.valueの値は定数式でなければなりません」private final String var =System.getProperty("US"); @Inject @Named (var) private Validator validator;
ここで重要な点は、注釈属性がリテラル(つまり定数)でなければならないということです。これはJava 5(以上)言語が指定(実装)されている方法です。この事実を回避する方法はありません。 – jfpoilpret
@jfpoilpret合意。 – RichW