java @interface 注解詳解及實(shí)例
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了臨邑免費(fèi)建站歡迎大家使用!
1 簡(jiǎn)介
在Java中,定義注解其實(shí)和定義接口差多不,只需要在interface前添加一個(gè)@符號(hào)就可以,即 @interface Zhujie{ },這就表明我們定義了一個(gè)名為 @Zhujie 的注解。注解中的每一個(gè)方法定義了這個(gè)注解類型的一個(gè)元素,特別注意:注解中方法的聲明中一定不能包含參數(shù),也不能拋出異 常;方法的返回值被限制為簡(jiǎn)單類型、String、Class、emnus、注釋,和這些類型的數(shù)組,但方法可以有一個(gè)缺省值。
注解相當(dāng)于一種標(biāo)記,在程序中加上了注解就等于為程序加上了某種標(biāo)記,JAVAC編譯器、開發(fā)工具和其他程序可以用反射機(jī)制來了解咱們的類以及各種元素上有無標(biāo)記,如果找到標(biāo)記,就做相應(yīng)的事。例如,@Deprecated可以標(biāo)記在一些不建議被使用的類、方法和字段上,如果有人使用了,就給出警告。
2 元注解
注解 @Retention 可以用來修飾注解,是注解的注解,稱為元注解。Retention注解有一個(gè)屬性value,是RetentionPolicy類型的,而Enum RetentionPolicy是一個(gè)枚舉類型,這就決定了Retention注解應(yīng)該如何去操作,也可以理解為Rentention 搭配 RententionPolicy來使用。RetentionPolicy有3個(gè)值,分別為:CLASS 、RUNTIME 和 SOURCE。
3 使用示例
首先,創(chuàng)建一個(gè)簡(jiǎn)單的注解:
public @interface Coder { int personId(); String company() default "[unassigned]"; }
注解定義完之后,咱們就可以用來作注釋聲明。注解是一種特殊的修飾符,在其他修飾符(例如,public、static 或者 final 等)使用地方都可以使用注解。按照慣例,注解應(yīng)該放在其他修飾符的前面。注解的聲明用@符號(hào)后面跟上這個(gè)注解類型的名字,再后面加上括號(hào),括號(hào)中列出這個(gè)注釋中元素或者方法的key-value對(duì),其中,值必須是常量。例如:
@coder(personId=20151120,company="YeePay")
沒有元素或者方法的注解被稱為“標(biāo)記(marker)”類型,例如:
public @interface Coder {}
標(biāo)記注解在使用的時(shí)候,其后面的括號(hào)可以省略。如果注釋中僅包含一個(gè)元素,這個(gè)元素的名字應(yīng)該為value,例如:
public @interface Coder { String value(); }
如果元素的名字為value,那么在使用這個(gè)注解的時(shí)候,元素的名字和等號(hào)都可以省略,例如:
@Coder("YeePay")
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!