Kotlin注解(1)元注解

  • @Target
  • @Retention
  • @Repeatable
  • @MustBeDocumented

??Kotlin 中的注解本質(zhì)上是一種接口類型。Kotlin 標(biāo)準(zhǔn)庫中提供一些基本注解和元注解?;咀⒔鈺绊懢幾g器的行為,如@JvmName@JvmFieldJvmStatic、@JvmOverloads@Throws 等,這些基本注解主要用于 Kotlin 與 Java 的混合編程中。元注解是負(fù)責(zé)注解其他的注解,自定義注解會用到元注解。

??Kotlin 元注解有 4 個,其中包括 Target、Retention、RepeatableMustBeDocumented,它們都位于 kotlin.annotation 包中。元注解是為其他注解進(jìn)行說明的注解,當(dāng)自定義一個新的注解類型時,其中可以使用元注解。

@Target

??@Target 使用于目標(biāo)注解,它用來指定一個新注解的使用目標(biāo)。@Target 注解有一個 allowedTargets 屬性,該屬性用來設(shè)置使用目標(biāo),allowedTargetskotlin.annotation.AnnotationTarget 枚舉類型的數(shù)組,AnnotationTarget描述 Kotlin 代碼中可以被注解的元素類型,它有 15 個枚舉常量。如下:

常量 使用目標(biāo)
CLASS 類、接口、對象聲明和注解類聲明
ANNOTATION_CLASS 其他注解類型聲明
TYPE_PARAMERTER 用于泛型中類型參數(shù)聲明
PROPERTY 屬性聲明
FIELD 字段聲明,包括屬性的支持字段
LOCAL_VARIABLE 局部變量聲明
VALUE_PARAMETER 用于函數(shù)或構(gòu)造函數(shù)參數(shù)值聲明
CONSTRUCTOR 用于構(gòu)造函數(shù)聲明
FUNCTION 用于函數(shù)聲明,不包括構(gòu)造函數(shù)
PROPERTY_GETTER 只用于屬性的getter訪問器聲明
PROPERTY_SETTER 只用于屬性的setter訪問器聲明
TYPE 類型使用
EXPRESSION 任何表達(dá)式
FILE 文件
TYPEALIAS 類型別名

@Retention

??@Retention 使用于保留期注解,它用來指定一個新注解的有效范圍,@Retention 注解有一個 value 屬性,該屬性用來設(shè)置保留期,valuekotlin.annotation.AnnotationRetention 枚舉類型,AnnotationRetention 描述注解保留期種類,它有 3 個常量,如下:

常量 保留期
SOURCE 只適用于源代碼文件中,此范圍最小
BINARY 編譯器把注解信息記錄在編譯之后的二進(jìn)制文件中,對于反射是不可見的,此范圍居中
RUNTIME 編譯器把注解信息記錄在編譯之后的二進(jìn)制文件中,對于反射是可見的,此范圍最大,這是默認(rèn)保留期

@Repeatable

??@Repeatable 適用于可重復(fù)注解,它允許在相同的程序元素中重復(fù)注解,可重復(fù)的注解必須使用 @Repeatable 進(jìn)行注解。

@MustBeDucomented

??@MustBeDucomented 適用于文檔注解,該注解可以修飾代碼元素(類、接口、函數(shù) 和 屬性等),文檔生成工具可以提取這些注解信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡述: 從這篇文章將繼續(xù)開始探索Kotlin中的一些高級的內(nèi)容,之前有著重探討了Kotlin的泛型以及泛型型變等內(nèi)...
    熊喵先森閱讀 6,274評論 1 8
  • 定義注解 Kotlin使用 annotation class 關(guān)鍵字(就像使用 enum class 定義枚舉類一...
    凌寒天下獨(dú)自舞閱讀 1,033評論 0 0
  • 關(guān)于注解首先引入官方文檔的一句話:Java 注解用于為 Java 代碼提供元數(shù)據(jù)。作為元數(shù)據(jù),注解不直接影響你的代...
    編程小世界閱讀 539評論 0 0
  • 什么是注解(Annotation):Annotation(注解)就是Java提供了一種元程序中的元素關(guān)聯(lián)任何信息和...
    九尾喵的薛定諤閱讀 3,418評論 0 2
  • 本文收錄于 kotlin入門潛修專題系列,歡迎學(xué)習(xí)交流。 創(chuàng)作不易,如有轉(zhuǎn)載,還請備注。 注解 注解在編程語言中是...
    寒瀟2018閱讀 1,917評論 0 4

友情鏈接更多精彩內(nèi)容