本教程操作環(huán)境:windows7系統(tǒng)、java10版,DELL G3電腦。
1.@Retention定義
這里的 RetentionPolicy 依然是一個(gè)枚舉類型,它有以下幾個(gè)枚舉值可取:
RetentionPolicy.SOURCE:當(dāng)前注解編譯期可見(jiàn),不會(huì)寫入 class 文件
RetentionPolicy.CLASS:類加載階段丟棄,會(huì)寫入 class 文件
RetentionPolicy.RUNTIME:永久保存,可以反射獲取
@Retention 注解指定了被修飾的注解的生命周期,一種是只能在編譯期可見(jiàn),編譯后會(huì)被丟棄,一種會(huì)被編譯器編譯進(jìn) class 文件中,無(wú)論是類或是方法,乃至字段,他們都是有屬性表的,而 JAVA 虛擬機(jī)也定義了幾種注解屬性表用于存儲(chǔ)注解信息,但是這種可見(jiàn)性不能帶到方法區(qū),類加載時(shí)會(huì)予以丟棄,最后一種則是永久存在的可見(jiàn)性。
2.@Retention創(chuàng)建自定義注解實(shí)例
package com.one;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
@Retention(RetentionPolicy.RUNTIME)
@Target( {ElementType.TYPE })//注解的作用目標(biāo)為 接口、類、枚舉、注解 ***詳見(jiàn)下文
public @interface RetentionTest {
String item(); // 定義基本屬性 若只有一個(gè)屬性,屬性名固定為value();
String color();
}
以上就是Java中@Retention創(chuàng)建注解的實(shí)例教學(xué),小伙伴們可以對(duì)@Retention的基本內(nèi)容性了解,然后再進(jìn)行代碼的演練哦~更多關(guān)于“Java培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢(mèng)想。