1. メタアノテーション
1.1 @ターゲット
[関数]
は、マークされたアノテーションを使用できる場所を指定するために使用されます。例: @Target(ElementType.METHOD)
: メソッドでは使用できるが、他の構造は使用できないことを示します。 @Target({ElementType .METHOD, ElementType.TYPE})
: メソッド、インターフェイス、クラス、列挙型で使用できることを示します。
関連オンライン ビデオ チュートリアル: java コース
1.2 @Retention
[関数]
Use指定された注釈保持ステージでは、注釈には 3 つの値があります。
@Retention(RetentionPolicy.SOURCE)
: ソース コードの段階まで保持され、コンパイル後に消えることを示します
@Retention(RetentionPolicy.CLASS)
: コンパイルフェーズまで保持され、実行後に消える
@Retention(RetentionPolicy.RUNTIME)
: 実行フェーズまで保持フェーズ 、リフレクションを通じてアノテーション情報を読み取りたい場合は、アノテーション保持ステージを RUNTIME
1.3 @Inherited
[関数]
として指定する必要があります。は、アノテーションがサブクラスに継承できるかどうかを示します。
1.4 @Documented
[関数]
このアノテーションが Javadoc によってドキュメントに読み込まれるかどうかを示します。
2. アノテーションステートメント
[形式]
[メタアノテーション]
【修饰符】 @interface 注解名 { 注解体 }
[例]
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { }
3. 設定パラメータ宣言
##[形式]【数据类型】 参数名() default 默认值;default デフォルト値: デフォルト値を設定する必要がある場合に追加できます。設定する必要がありますが、記述する必要はありません。データ型は、基本データ型、String、Class、enum、Annotation、および上記すべての型の 1 次元配列のみです。 パラメータメンバーが1つしかない場合や頻繁に使用するパラメータの場合は、パラメータ名:valueを定義できます。アノテーションを使用する場合、パラメータ名がvalueの場合は省略して入力値を直接記述することができます。 [例]
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String name() default ""; }
4. アノテーション情報の読み取り
アノテーション annotations のみ@Retention(RetentionPolicy.RUNTIME) It反射を通じて読み取ることができます。
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; public class TestInterface { public static void main(String[] args) { MyAnnotation myAnnotation = MyClass.class.getAnnotation(MyAnnotation.class); String value = myAnnotation.value(); System.out.println(value); } } @MyAnnotation class MyClass {} @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation { String value() default "我是一个注解"; }出力結果:
以上がJava の基本に関するアノテーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。