【Java】注解

对于”アノテーション”的定义是什么?

@interface を付けるとアノテーションとしての定義となる。

注释的参数定义

    アノテーションを使用する際のパラメタの宣言
public @interface TestAnnotation {
    String param1();
    String param2() default "defaultValue";
}
@TestAnnotation (param1="30", param2="100")
public UserAnnotation() {}

参考标注

    リフレクションを使用して参照する。
    Class<?> c = UserAnnotation.class;
    for (Annotation a : c.getDeclaredAnnotations()) {
        System.out.println(a);
    }
@com.example.demo.com.annotation.TestAnnotation(param2=100, param1=30)

元数据注释

@Documented
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation{}
    • アノテーションに対して付けられるアノテーションのこと。

 

    • そのうち、java側で用意されているのを標準メタアノテーションという。

 

    ex. Documented, Target, Retention, Ingerited

被记录在案

    Javadoc中にアノテーションの説明を記載するかどうか。

@目标

    アノテーションの配置する場所を定義する。
種類説明TYPEクラス・インタフェース・enum・アノテーションFIELDフィールドMETHODメソッドANNOTATION_TYPEアノテーション型の宣言

@保留

    アノテーションの情報がどの段階まで使用されるか。
種類説明SOURCEソース上のみ保持、クラスファイル作成時に削除される。CLASSクラスファイルでも保持できるがアプリケーション実行時には参照できない。RUNTIMEアプリケーション実行時でも使用可能。
リフレクションでアノテーションを参照するならこれが必要。

@继承

    クラスを宣言したサブクラスにもアノテーションの情報を付与する。

请参考以下网站

@Documented的行为
https://qiita.com/opengl-8080/items/1cc996d9e8bb5c811567

@元注释是什么?
https://www.techscore.com/tech/Java/JavaSE/JavaLanguage/7-3/

广告
将在 10 秒后关闭
bannerAds