Kotlin注解(1)元注解

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

??Kotlin 中的注解本質(zhì)上是一種接口類型沮峡。Kotlin 標準庫中提供一些基本注解和元注解∧穑基本注解會影響編譯器的行為匠襟,如@JvmName钝侠、@JvmFieldJvmStatic酸舍、@JvmOverloads@Throws 等帅韧,這些基本注解主要用于 Kotlin 與 Java 的混合編程中。元注解是負責注解其他的注解父腕,自定義注解會用到元注解弱匪。

??Kotlin 元注解有 4 個,其中包括 Target璧亮、Retention萧诫、RepeatableMustBeDocumented,它們都位于 kotlin.annotation 包中枝嘶。元注解是為其他注解進行說明的注解帘饶,當自定義一個新的注解類型時,其中可以使用元注解群扶。

@Target

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

常量 使用目標
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 任何表達式
FILE 文件
TYPEALIAS 類型別名

@Retention

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

常量 保留期
SOURCE 只適用于源代碼文件中衅枫,此范圍最小
BINARY 編譯器把注解信息記錄在編譯之后的二進制文件中嫁艇,對于反射是不可見的,此范圍居中
RUNTIME 編譯器把注解信息記錄在編譯之后的二進制文件中弦撩,對于反射是可見的步咪,此范圍最大,這是默認保留期

@Repeatable

??@Repeatable 適用于可重復注解益楼,它允許在相同的程序元素中重復注解猾漫,可重復的注解必須使用 @Repeatable 進行注解。

@MustBeDucomented

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市族跛,隨后出現(xiàn)的幾起案子闰挡,更是在濱河造成了極大的恐慌,老刑警劉巖礁哄,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件长酗,死亡現(xiàn)場離奇詭異,居然都是意外死亡桐绒,警方通過查閱死者的電腦和手機夺脾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茉继,“玉大人咧叭,你說我怎么就攤上這事∷附撸” “怎么了佳簸?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長颖变。 經(jīng)常有香客問我,道長听想,這世上最難降的妖魔是什么腥刹? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮汉买,結(jié)果婚禮上衔峰,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好垫卤,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布威彰。 她就那樣靜靜地躺著,像睡著了一般穴肘。 火紅的嫁衣襯著肌膚如雪歇盼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天评抚,我揣著相機與錄音豹缀,去河邊找鬼。 笑死慨代,一個胖子當著我的面吹牛邢笙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播侍匙,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼氮惯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了想暗?” 一聲冷哼從身側(cè)響起妇汗,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澈驼,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡胃榕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秸脱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖擒悬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情稻艰,我是刑警寧澤懂牧,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站尊勿,受9級特大地震影響僧凤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜元扔,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一躯保、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澎语,春花似錦途事、人聲如沸验懊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽义图。三九已至,卻和暖如春召烂,著一層夾襖步出監(jiān)牢的瞬間碱工,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工骑晶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留痛垛,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓桶蛔,卻偏偏與公主長得像匙头,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仔雷,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

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