Java中注解學(xué)習(xí)系列教程-3

本文是《Java中注解學(xué)習(xí)系列教程》第三篇文章

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括城北網(wǎng)站建設(shè)、城北網(wǎng)站制作、城北網(wǎng)頁(yè)制作以及城北網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,城北網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到城北省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

在前兩篇中我們學(xué)習(xí)了注解的定義、JDK內(nèi)置注解、注解分類及自定義注解的寫(xiě)法。

本文咱們將學(xué)習(xí):

Java中注解學(xué)習(xí)系列教程-3

1:自定義注解一些說(shuō)明

2:自定義注解怎么使用

3:怎么解析自定義注解

一:自定義注解一些說(shuō)明:

自定義注解的時(shí)候,內(nèi)部成員可被允許的類型又有哪些呢?

1:基本類型(Java中8中基本類型)

2:stirng類型

3:class

4:其他注解

5:枚舉類

6:以上五類的數(shù)組

如下圖:

Java中注解學(xué)習(xí)系列教程-3

Java官方文檔(https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1)原文如下:

Java中注解學(xué)習(xí)系列教程-3

類型舉例:

Java中注解學(xué)習(xí)系列教程-3

需要說(shuō)明的:

1:如果注解只有一個(gè)成員時(shí)候,成員名稱必須為value

2:注解類可以沒(méi)有成員,沒(méi)有成員的注解為:標(biāo)識(shí)注解

二:自定義注解的使用

說(shuō)明:自定義注解根據(jù)其使用范圍使用。

如MyAnnotation1這個(gè)自定義注解

Java中注解學(xué)習(xí)系列教程-3

使用范圍是是method和field上。

我們就在method的使用該注解:

語(yǔ)法是:

注解名稱(成員名稱 = 成員值,成員名稱2 = 成員值2)

如下圖:Java中注解學(xué)習(xí)系列教程-3

三:注解解析

在使用注解的時(shí)候,使用的反射處理的。

public?class?MyAnnotation1Test?{

????public?static?void?main(String[]?args)?{
????????try?{
??????????//1:使用類加載器加載類
????????????Class?clazz?=?Class.forName("MyAnnotation1PoJo");
????????????//2:在對(duì)于的類上是否存在對(duì)于注解
????????????//獲取方法上是否有注解
????????????for(Method?method?:?clazz.getMethods()){
????????????????boolean?isMothExistMyAnnotation1?=?method.isAnnotationPresent(MyAnnotation1.class);
????????????????if(isMothExistMyAnnotation1){
????????????????????//3:如果存在。就獲取
????????????????????MyAnnotation1?myAnnotation1?=?(MyAnnotation1)method.getDeclaredAnnotation(MyAnnotation1.class);
????????????????????System.out.println("==>:方法"+method.getName()+"有注解。值為:"+myAnnotation1.value());

????????????????}else{
????????????????????System.out.println("==>:方法"+method.getName()+"無(wú)注解");
????????????????}
????????????}

????????}catch?(Exception?e){
????????????e.printStackTrace();
????????}
????}
}

Java中注解學(xué)習(xí)系列教程-3

注:關(guān)于反射方面的學(xué)習(xí)。在后期,凱哥也會(huì)出相應(yīng)的學(xué)習(xí)教程。

我們查看運(yùn)行后的結(jié)果:

Java中注解學(xué)習(xí)系列教程-3

可以正常解析出自定義注解的值。

下節(jié)預(yù)告:在下一節(jié)中,凱哥將通過(guò)自定義注解實(shí)現(xiàn)excel的導(dǎo)出功能

聲明:本文由凱哥Java系列教程中Java注解講解第三篇文章。

本文出處:http://www.kaigejava.com/article/detail/441

凱哥博客:www.kaigejava.com

凱哥公眾號(hào):凱哥Java(kaigejava)

文章題目:Java中注解學(xué)習(xí)系列教程-3
網(wǎng)頁(yè)地址:http://www.muchs.cn/article14/ihegde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、定制網(wǎng)站軟件開(kāi)發(fā)、網(wǎng)站排名、全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)