6つのカスタムアノテーション

1.カスタムアノテーションの文法

@interfaceを使用してカスタムアノテーションを定義すると、java.lang.annotation.Annotationインターフェースが自動的に継承されます。

1)@interfaceはアノテーションを宣言するために使用されます

2)これらの各メソッドは実際に構成パラメーターを宣言します

a)メソッドの名前はパラメーターの名前です

b)戻り値の型はパラメーター型です(戻り値の型は、基本型、クラス、文字列、列挙型のみです)

c)パラメータのデフォルト値はデフォルトで宣言できますd)メンバーが1つだけの場合、一般的なパラメータ名はvalueです

注意が必要な事項:

  • アノテーション要素には値が必要です。アノテーション要素を定義するとき、空の文字列を使用することが多く、デフォルト値は0です。
  • 存在しないことの意味を示すために、負の数(-1など)を使用することも多い

2.メタ注釈

        メタ注釈の機能は、他の注釈に注釈を付ける責任があります。4つの標準メタ注釈タイプがJavaで定義されており、他の注釈タイプの説明を提供するために使用されます

        これらのタイプとそれらがサポートするクラスは、java.lang.annotationパッケージにあります。

1)@Target 2)@Retention 3)@Documented 4)@Inherited

3、@ Target

役割:アノテーションの使用範囲を説明するために使用されます(つまり、説明されたアノテーションを使用できる場所)

 例:@Target(value = ElementType.TYPE)

4、@ Retention 

機能:アノテーション情報を保存する必要があるレベルを示し、アノテーションのライフサイクルを説明するために使用されます

 カスタムノート1:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; 

/ ** 
 * ClassName:MyAnnotation 
 *日付:2020/4/16 10:25 
 * 
 * @author 王鼎宇
  * / 
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @ interface MyAnnotation { 
    String stuName()default " ";  // メソッドの名前はパラメータの名前stuName()
                                   //戻り値の型はパラメータ型です(戻り値の型は基本型、Class、String、enumのみです// パラメータのデフォルト値を宣言するデフォルト、多くの場合空の文字列をデフォルト値として使用します
    int age()default 0 ; 
    String [] school()default {"B Station University"、 "Tsinghua University" }; 

}

カスタムノート2:

1  インポートjava.lang.annotation.ElementType;
2  インポートjava.lang.annotation.Retention;
3  java.lang.annotation.RetentionPolicyをインポートします。
4  import java.lang.annotation.Target;
5  
6  / ** 
7  * ClassName:MyAnnotation2
 8  *日付:2020/4/16 10:31
 9  *
 10  * @author 王鼎佑
 11   * / 
12  @Target({ElementType.TYPE、ElementType.METHOD})
 13  @Retention( RetentionPolicy.RUNTIME)
 14  public @ interface MyAnnotation2 {
15      String value(); //メンバーが1つしかない場合、一般的なパラメーター名は値
16 }
1  // @MyAnnotationこのアノテーションはメソッドにのみ適用できます
 2  // @ MyAnnotation2(value = "aaaa")
3 @ MyAnnotation2( "aaa" 4  public  class Test5 {
 5      @MyAnnotation(stuName = "王一一" 6      public  static  void show(){
 7      }
 8      @MyAnnotation(stuName = "乔二二"、age = 23、school = {"Home Squatting University"、 "Lanxiang University" })
 9      public  void method(){
 10  
11      }
 12 }

 

おすすめ

転載: www.cnblogs.com/qiaoxin11/p/12711200.html