私はJavaのカスタム注釈シリーズを愛します--- []

まず、概要ノート

1.定義: アノテーション(注釈)、また、メタデータとして知られています。コードレベルを説明してください。これは、JDK1.5の機能であり、後にクラスを導入し、
  インタフェースは、列挙型は同じレベルにあります。これは、パッケージ、クラス、フィールド、メソッド、ローカル変数、パラメータ、およびこれらの要素のための方法のように目の前で宣言することができます
  コメントを説明しました。
2.役割カテゴリ:
  ドキュメント執筆:識別された文書によって生成された注釈付きコードを[例えば、文書ドキュメントのドキュメントを生成]
  コード分​​析:コード識別コードに注釈を付けることによって分析[例えば、注釈は反射】
  コンパイル検査:そのように同定された注釈コードによって、コンパイラは、基本的なチェックをコンパイルすることができる[例えば、オーバーライド]
3.共通アノテーション
  1. @author:作者の名前を識別するために使用されます
  2. @version:ファイル、クラス、メソッド:物体、スコープを識別するためのバージョン番号。
  3. @Override:メソッドが存在しない場合は、親クラスを親クラスメソッドのオーバーライドでコンパイラに伝えるために、メソッドの宣言を変更するために使用、コンパイルが失敗します。
4.カスタム注釈
/ * 
    カスタム注釈
        1フォーマット
            公共@interface {注釈名前
                属性セット
            } 
        2.分類
            (1)空注:属性セット
 * / 
パブリック@interface MyAnno01 { 
}
/ * 
    カスタム注釈
        1.形式
            公共@interface {注釈名
                属性セット
            } 
        2.分類
            (2)注釈プロパティセットの
                フォーマットを定義する属性:
                データ型の属性名(); //デフォルト値なしの
                データ型の属性名( )デフォルトデフォルト値; //デフォルト値を持っている、デフォルトの背中の内容
            タイプ(3)どのようなものの属性?
                8の基本的なタイプ、文字列、列挙(なし)、クラスタイプ、注釈型
                1次元の任意のタイプよりも、よりアレイはint [] 
 * / 
パブリック@interfaceのMyAnno02 { 
    文字列名(); 
    int型年齢()デフォルト 18は
    文字列[]趣味(); // 興味 
    MyAnno01アノ(); //注釈の種類 
}
/ * 
    カスタム3.自己の考慮事項は、使用注釈付き
        1.空の注釈を直接使用することができ
        ますが、位置に位置に異なる音符の数を使用することができ、2 Aコメントは一度だけ使用することができます
        。3.注釈の属性がある場合は、あなたがしなければなりません割り当て、それらを離れて、=複数の属性の属性値を属性名のキー割り当てを使用する
          プロパティは配列型であり、それはプロパティ値の{} {}複数を省略することができない場合にのみ1つの属性値を省略してもよい有する場合
        プロパティ場合4.割り当てることができないデフォルト値がある場合に割り当てる必要がありますデフォルト値はありません
        コメントは唯一の財産であり、値と呼ばれるプロパティを使用するの割り当てに特に注意してプロパティ名を省略することができる場合5. ------------- - 
 * / 
パブリック クラスDemo07AnnotationNotice { 
    MyAnno01 @ 
    // MyAnno01 @ // 同じ位置に、一度だけ使用することができます 
    @ MyAnno02(名= "少年包囲ライオン"、趣味= " Javaの学習"、安野= @ MyAnno01)
    (@ MyAnno03 ティーンエイジャー" 
    @ MyAnno04 
    公共 ボイド方法(){ 

    } 
}
/ * 
    5.コメントが唯一の財産とあなたが--------------の割り当てに特に注意してプロパティ名を省略することができますプロパティと呼ばれる値である場合
 * / 
公共@interface MyAnno03 { 
    文字列値(); // デフォルトなし 
}
公共@interfaceのMyAnno04 { 
    文字列値()デフォルトの「少年の包囲ライオン」; //デフォルト値を有します 
}

カスタム注釈の例:

/ * 
    コメントを定義します:ブック
        -プロパティが含まれています:文字列値()タイトルは
        -プロパティが含まれていますダブル価格()の価格を、デフォルト値は100です
        -プロパティが含まれます。String []型の作者()複数の著者
 * / 
公共@interfaceブック{ 
    String値(); 
    ダブル価格()デフォルト 100 ; 
    String []型の著者(); 
}

カスタムアノテーションを使用してデモンストレーション:

/ * 
    カスタムブックノートとユースケース

        コメントの定義:今
        - :文字列値()タイトルのプロパティが含まれている
        -のプロパティが含まれていますダブル価格()の価格を、デフォルト値は100です
        -プロパティが含まれます。String []型の作者(以上の)著者
 * / 
@book(値 = " 私はJavaのシリーズが大好きです"、。価格= 1000年、作家で= { " 少年"" 女の子" })
 パブリック クラスDemo08AnnotationBook { 
    @book(値 = " ティーンエイジ・アポカリプス"、著者で= " バイアグラ" 公共 ボイドメソッド(){ 
 
    }
}

 

おすすめ

転載: www.cnblogs.com/hujunwei/p/12616890.html