首頁 > Java > java教程 > 主體

Java元註解Retention怎麼聲明

王林
發布: 2023-05-03 09:13:16
轉載
1387 人瀏覽過

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怎麼聲明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板