注釈:
Java のクラス、メソッド、およびメンバー変数をマークし、特別な処理を実行します。
カスタム注釈:
特別:
- value 属性の場合、value 属性が 1 つしかない場合、value 属性を使用するときに値の名前を省略できます。
- ただし、複数の属性があり、 複数の属性にデフォルト値がない場合は、値の名前を省略できません。
メタアノテーション:
注釈 注釈 注釈
メタアノテーションは 2 つあります。
@Target : カスタム アノテーションのみを使用できる場所を制約します。一般的な値は次のとおりです
- TYPE、クラス、インターフェース
- FIELD、メンバー変数
- METHOD、メンバーメソッド
- PARAMETER、メソッドパラメータ
- コンストラクター、コンストラクター
- LOCAL_VARIABLE、ローカル変数
@ Retention : アノテーションのライフサイクルを宣言します。共通の値は次のとおりです
- SOURCE: 注釈はソース コード段階にのみ適用され、生成されたバイトコード ファイルには存在しません。
- CLASS: アノテーションはソースコード段階、バイトコードファイル段階で機能しますが、ランタイム段階では存在せず、デフォルト値です。
- RUNTIME: アノテーションはソースコードフェーズ、バイトコードファイルフェーズ、およびランタイムフェーズで使用されます (開発で一般的に使用されます)
たとえば、アノテーションはメソッド内でのみ使用できると規定しています。
アノテーション分析
- 注釈:注釈の最上位インターフェイス。すべての注釈はAnnotationタイプのオブジェクトです。
- AnnotatedElement: このインターフェースは、注釈解析に関連する解析メソッドを定義します。
- すべてのクラス コンポーネントである Class、Method、Field、および Constructor はAnnotatedElement インターフェイスを実装しており、それらはすべて注釈を解析する機能を備えています。