更新時(shí)間:2020-06-28 15:48:53 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3216次
Java的注解是Java中非常好用的一個(gè)功能點(diǎn)?;舅械膉ava框架都會(huì)用到。在我們?nèi)粘5墓ぷ髦?,如果善于使用自定義注解,講給我們節(jié)省下大量的時(shí)間。

代碼示例:
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
Documented
Target(ElementType.METHOD)
Inherited
Retention(RetentionPolicy.RUNTIME)
public interface MyDemo{
String author()default'yunsheng';
}
對(duì)自定義注解進(jìn)行注解的稱為元注解。常用的元注解有四類:
Documented:表明此注解會(huì)被javadoc等類似工具識(shí)別,并保留在API文檔中。
Target:聲明這個(gè)注解可使用的范圍??梢源蜷_(kāi)ElementType看下,分別是:1)類,接口,注解,enum;2)屬性域;3)方法;4)參數(shù);5)構(gòu)造函數(shù);6)局部變量;7)注解類型;8)包
Inherited:繼承。是說(shuō)如果你在父類上使用了被 Inherited注解的注解A。那么該類的子類也會(huì)繼承該注解A。
Retention:注解的存在范圍。
有三個(gè)范圍:
RetentionPolicy.SOURCE只存在源碼級(jí)別,被編譯器拋棄( Override就是此類);
RetentionPolicy.CLASS會(huì)被編譯器保留在編譯后的類文件中,但是會(huì)被虛擬機(jī)丟棄;
RetentionPolicy.RUNTIME保留在運(yùn)行時(shí),可以被反射讀取。這個(gè)注解還是比較重要的,我們一般是會(huì)使用RUNTIME級(jí)別,因?yàn)槲覀冃枰ㄟ^(guò)反射讀取到這個(gè)注解。
使用:
使用起來(lái)其實(shí)很簡(jiǎn)單,就是通過(guò)反射拿到注解信息。
如:Method的幾個(gè)方法:
isAnnotationPresent(xx.xx.class):方法判斷是否使用了xx注解
getAnnotation(xx.class):獲取具體的注解對(duì)象實(shí)例
getDeclaredAnnotations():獲取所有注解,注意反射方法中Declared都是獲取自身的,不包括繼承來(lái)的。
getAnnotations():獲取包括繼承來(lái)的注解。這里就要看父類的注解是否是可繼承的了。

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“初學(xué)者學(xué)會(huì)使用Java自動(dòng)注釋”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)