ホームページ  >  記事  >  Java  >  Java実装アノテーションの使用の概要

Java実装アノテーションの使用の概要

黄舟
黄舟オリジナル
2017-09-14 10:49:431526ブラウズ

この記事では、主に Java アノテーションの実装と使用に関する関連情報を詳しく紹介します。この記事を通じて、Java アノテーションの知識を理解して習得できることを願っています。

実装と使用の詳細を参照してください。 Java アノテーションの説明

Java アノテーションは Java5 バージョンでリリースされ、その機能は設定ファイルを保存し、コードの可読性を向上させることです。現在のさまざまなフレームワークや開発において非常に一般的ですので、ここで説明したいと思います。

アノテーションの作成方法

各カスタム アノテーションは、Java 自体によって提供される 4 つのメタ アノテーションで構成されます:

@Target(ElementType.**)

これは列挙型であり、固定されています。クラス、変数、メソッドなど、カスタム アノテーションが使用される最上部。

@Retention(RetentionPolicy.**) は、コンパイル中やクラス ファイル中など、アノテーションがどのレベルで保存されるかを示すために使用されます。 VM は実行中です

@Documented この注釈は javadoc に含まれています。つまり、この注釈は javadoc ツールによってドキュメントに抽出されます。 doc ドキュメント内のコンテンツは、このアノテーションの情報コンテンツに応じて異なります

@Inherited: アノテーションを定義してプログラム コードで使用した後、デフォルトでは、親カテゴリのアノテーションは子に継承されません。このカテゴリでは、アノテーションを定義するときに java.lang.annotation.Inherited で修飾されたアノテーションを追加できます。これにより、定義したアノテーション タイプを継承できるようになります。

理論を紹介した後、コードを開始します(話は簡単です、コードを見せてください)


package com.yasin.JavaLearn;

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

/**
 * 这是一个类级别的注释,这个注释中有一个name字段,默认值是 yasin
 * @author yasin
 *
 */

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Learn {
  String name() default "yasin";
}


package com.yasin.JavaLearn;

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

/**
 * 这是一个变量级别的注解,注解中有一个字段name,默认值是field
 * @author yasin
 *
 */

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FiledLearn {
  String name() default "field";


}


package com.yasin.JavaLearn;

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

/**
 * 这是一个方法级别的注解
 * @author yasin
 *
 */

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MethodLearn {
  String name() default "method";

}

上記でよく使用されるクラス、変数、メソッドである 3 つのアノテーションを定義しました. 注釈のレベル。

今、クラスを定義し、これらの 3 つのアノテーションを使用します


package com.yasin.JavaLearn;

@Learn
public class Yasin {

  @FiledLearn
  public int level;

  @FiledLearn(name="xq")
  public String xq;

  public String a;


  @MethodLearn(name="test")
  public void setMain(){

  }

  public void setA(){

  }

}

このアノテーションの使用方法は、クラスのリフレクションを通じて、対応する変数とメソッドを取得することです。注釈を取得します。


りー

以上がJava実装アノテーションの使用の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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