ホームページ > Java > &#&チュートリアル > Java アノテーションは配列または定数をパラメータ値として使用できますか?

Java アノテーションは配列または定数をパラメータ値として使用できますか?

Barbara Streisand
リリース: 2024-12-05 08:34:11
オリジナル
604 人が閲覧しました

Can Java Annotations Use Arrays or Constants as Parameter Values?

Java アノテーションの定数値

Java では、アノテーション パラメータとして使用される定数の配列を格納するインターフェイスを定義するのが一般的です。たとえば、次のようなインターフェイスがあるとします。

public interface FieldValues {
   String[] FIELD1 = new String[]{"value1", "value2"};
}
ログイン後にコピー

クラスに注釈を付ける場合、次のようにこれらの定数をパラメータ値として使用することがあります。

@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
   ....
}
ログイン後にコピー

ただし、このアプローチでは、すべての注釈インスタンスで文字列値を指定する必要があります。定数を直接使用する方が便利です:

@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
   ....
}
ログイン後にコピー

残念ながら、Java では配列または定数をアノテーション パラメーター値として使用することはできません。これは、アノテーションがコンパイル時に解決され、コンパイル時の定数として使用できるのはプリミティブ値または文字列だけであるためです。

したがって、Java で目的の動作を実現する直接的な方法はありません。 FieldValues の配列は、アクセスできるコードによって実行時に要素が変更される可能性があるため、真の定数ではありません。真の不変性を確保するには、不変クラスを使用して文字列値をラップすることを検討できます。

以上がJava アノテーションは配列または定数をパラメータ値として使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート