溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java元注解Retention怎么聲明

發布時間:2022-08-27 14:42:15 來源:億速云 閱讀:182 作者:iii 欄目:開發技術

今天小編給大家分享一下Java元注解Retention怎么聲明的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1.注解聲明:通過@interface就可以聲明一個注解。

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface BindView {
    int value();
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Get {
    String value() default "";
}
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface Queue {
    String value() ;
}

2. @Target 元注解,注解的注解,它的取值定義在ElementType枚舉類中。

@Target注解 用來定義我們自定義注解代碼的什么位置。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.ANNOTATION_TYPE})
public @interface Target {
    ElementType[] value();
}

1)ElementType.FIELD 使用在成員變量上。

2)ElementType.METHOD 使用在成員方法上。

3)ElementType.PARAMETER 使用在方法參數上。

4)ElementType.TYPE 使用在類、接口上。

5)ElementType.ANNOTATION_TYPE 使用在注解上。

3.@Retention 元注解,取值定義在RetentionPolicy枚舉類中。

用來定義注解生效的階段:

1)SOURCE:注解只在源碼階段有效,不會編譯到字節碼中。

2)CLASS:注解在源碼、字節碼階段有效,運行階段不存在。

3)RUNTIME:注解在源碼、字節碼、運行階段有效,也是最長用的。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.ANNOTATION_TYPE})
public @interface Retention {
    RetentionPolicy value();
}
public enum RetentionPolicy {
    SOURCE,
    CLASS,
    RUNTIME;
    private RetentionPolicy() {
    }
}

2.注解的使用

    @BindView(R.id.start_activity)
    TextView startTextView;
    @Get("http://www.baidu.com")
    Call getPerson(@Queue("name") String name,@Queue("200")int price);
    @Get("http://www.baidu.com")
    Call getPerson();

注解的使用很簡單。

注解單獨存在沒有任何意義,必須配合其他技術。

應用:

1)注解+Apt注解處理器,生產java代碼 ,databinding、butterknife、dagger2 hilt

2)注解+代碼埋點

3)注解+反射+動態代理 retrofit xUtils lifecycle

以上就是“Java元注解Retention怎么聲明”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女