java.lang.annotation.ElementType
:
プログラム要素型。この列挙型の定数は、Javaプログラムで宣言された要素の簡単な分類を提供します。これらの定数は、Target
メタ注釈タイプ注釈型の使用が合法な場所を指定する。
以下の定数があります。
- 注釈タイプ- 注釈型宣言
- コンストラクタ- コンストラクタ宣言
- 分野- フィールド宣言(列挙定数を含む)
- ローカル変数- ローカル変数の宣言
- 方法- メソッド宣言
- パッケージ- パッケージ宣言
- パラメータ- パラメータ宣言
- タイプ- クラス、インターフェース(注釈型を含む)、または列挙型の宣言
それぞれが何であるか(実際のコードではどこに注釈が付けられるか)を誰か説明してもらえますか?
ベストアンサー1
を指定するアノテーションが とElementType
呼ばれているとしますYourAnnotation
。
ANNOTATION_TYPE - 注釈タイプの宣言。注記:これは他の注釈にも当てはまります
@YourAnnotation public @interface AnotherAnnotation {..}
コンストラクタ - コンストラクタ宣言
public class SomeClass { @YourAnnotation public SomeClass() {..} }
FIELD - フィールド宣言(列挙定数を含む)
@YourAnnotation private String someField;
LOCAL_VARIABLE - ローカル変数の宣言。注記:これは実行時に読み取ることができないため、注釈などのコンパイル時の処理にのみ使用されます
@SuppressWarnings
。public void someMethod() { @YourAnnotation int a = 0; }
METHOD - メソッド宣言
@YourAnnotation public void someMethod() {..}
PACKAGE - パッケージ宣言。注記:これは でのみ使用できます
package-info.java
。@YourAnnotation package org.yourcompany.somepackage;
PARAMETER - パラメータ宣言
public void someMethod(@YourAnnotation param) {..}
TYPE - クラス、インターフェース(注釈型を含む)、または列挙宣言
@YourAnnotation public class SomeClass {..}
ElementType
特定の注釈に対して複数の を指定できます。例:
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})