ホームページ  >  記事  >  Java  >  Java の @interface アノテーションの詳細な説明と例

Java の @interface アノテーションの詳細な説明と例

黄舟
黄舟オリジナル
2017-06-04 09:31:311764ブラウズ

この記事では主に Java @interface アノテーションの関連情報と例を紹介します。

java @interface アノテーションの詳細と例

Java では、定義。アノテーションは実際には interface の定義と似ています。必要なのは、インターフェイスの前に @ 記号を追加することだけです。つまり、@interface Zhujie{ } は、@Zhujie という名前のアノテーションを定義したことを示します。アノテーション内の各メソッドは、このアノテーション タイプの要素を定義します。特別な注意: アノテーション内のメソッドの宣言にはパラメータを含めることはできません。また、メソッドの戻り値は単純な型 String に限定されます。これらの型の

Class、emnus、annotation、および arrays ですが、メソッドはデフォルト値を持つことができます。 アノテーションは一種のマークに相当します。プログラムにアノテーションを追加することは、JAVAC コンパイラー、開発ツール、およびその他のプログラムがクラスやさまざまな要素を理解するために使用することができます。マークの有無に関わらず、マークが見つかった場合は適切な処置を行ってください。たとえば、使用が推奨されていない一部のクラス、メソッド、フィールドに @Deprecated のマークを付けることができ、誰かがそれらを使用すると警告が表示されます。 2 メタアノテーション

Annotation @Retention は、アノテーションのアノテーションであるアノテーションを変更するために使用でき、メタアノテーションと呼ばれます。 Retention アノテーションには、RetentionPolicy 型の

attribute 値があり、Enum RetentionPolicy は、Retention アノテーションをどのように操作するかを決定する列挙型です。Rentension を RententionPolicy とともに使用することも理解できます。 RetentionPolicy には、CLASS、RUNTIME

、SOURCE の 3 つの値があります。

@Retention(RetentionPolicy.CLASS) で変更されたアノテーションは、プログラムのコンパイル時にアノテーション情報がクラス ファイル (バイトコード ファイル) に保持されるが、実行時に仮想マシンによって読み取られないことを示します。 @Retention(RetentionPolicy.SOURCE) で変更されたアノテーションは、アノテーションが付けられた情報がコンパイラーによって破棄され、クラス ファイルに残されないことを意味します。

  1. を使用します。 @Retention(RetentionPolicy.RUNTIME) によって変更されたアノテーションは、プログラムがコンパイルされると、アノテーション情報がクラス ファイル (バイトコード ファイル) に保持され、実行時に仮想マシンによって保持されることを示します。

  2. 3
  3. 使用例


  4. まず、簡単なアノテーションを作成します:
public @interface Coder { 
   int personId(); 
   String company() default "[unassigned]";
}

アノテーションが定義されたら、それを使用してアノテーションステートメントを作成できます。アノテーションは、他の修飾子 (public、static、または final など) が使用される場所で使用できる特別な修飾子です。慣例により、注釈は他の修飾子の前に配置する必要があります。注釈は、@ 記号の後に注釈タイプの名前が続き、その後に括弧が続く形で宣言されます。括弧内には、注釈内の要素またはメソッドの

key

と値のペアがリストされます。値は

定数

である必要があります。例:

@coder(personId=20151120,company="YeePay")
要素またはメソッドのない注釈は「マーカー」タイプと呼ばれます。 例:
public @interface Coder {}
マーカー注釈が使用される場合、それに続く括弧は省略できます。注釈に要素が 1 つだけ含まれている場合、この要素の名前は value である必要があります。例:
public @interface Coder { 
   String value();
}
要素の名前が value の場合、この注釈を使用する場合、要素の名前と等号は省略できます。 、例:
@Coder("YeePay")

以上がJava の @interface アノテーションの詳細な説明と例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。