問題:
Java では、文字列を使用してアノテーション パラメータを初期化できますか定数または配列定数?注釈パラメータはコンパイル時に評価されるため、この機能が妨げられる可能性があります。
必要な構文の例は次のとおりです。
@SomeAnnotation(locations = FieldValues.FIELD1) public class MyClass { .... }
ここで、FieldValues は定数配列を持つインターフェイスです。 FIELD1.
答え:
Java 言語仕様 15.28 によれば、コンパイル時定数はプリミティブと文字列のみとなります。これは、配列定数を使用してアノテーション パラメータを初期化することはできないことを意味します。
説明:
アノテーションはコンパイル時に評価され、アノテーションが保持する値はその時に分かるはずだ。配列の要素は実行時に変更される可能性があるため、配列はコンパイル時の定数ではありません。したがって、配列定数をアノテーション パラメーターとして使用することはできません。
考えられる解決策:
注:
配列が Final として定義されている場合でも、それはコンパイル時の定数ではなく、その要素はリフレクティブに変更される可能性があります。 .
以上がJava のアノテーション パラメータは文字列または配列定数で初期化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。