Java アノテーション ElementType 定数は何を意味しますか? 質問する

Java アノテーション ElementType 定数は何を意味しますか? 質問する

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})

おすすめ記事