ホームページ >Java >&#&チュートリアル >Java アノテーションは定数文字列配列の値を使用できますか?
Java 定数からのアノテーション値の供給
Java でアノテーションを操作する場合、静的に決定された値でアノテーション パラメータを初期化するのが一般的です。ただし、文字列配列定数から値を供給しようとすると、一般的な課題が発生します。
問題:
次のインターフェイスとクラスを考えてみましょう:
public interface FieldValues { String[] FIELD1 = new String[]{"value1", "value2"}; }
@SomeAnnotation(locations = {"value1", "value2"}) public class MyClass { .... }
目的は、代わりに定数配列 FieldValues.FIELD1 を利用することで、アノテーションの使用を簡素化することです。
@SomeAnnotation(locations = FieldValues.FIELD1) public class MyClass { .... }
ただし、この方法では、アノテーション値が配列初期化子である必要があるため、コンパイル エラーが発生します。
解決策:
Java の制限により、コンパイル時の定数式はプリミティブ型と文字列に制限されます。これは、配列をアノテーション値として直接使用することができないことを意味します。
さらに、Java には、配列要素の不変性を保証するメカニズムが提供されていません。これは、配列は本質的に変更可能であり、実行時に誰かが FieldValues.FIELD1 の要素を変更する可能性があるためです。
したがって、Java では定数 String 配列からアノテーション値を提供することはできません。
以上がJava アノテーションは定数文字列配列の値を使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。