@interface 用來(lái)定義一個(gè)自定義注解
在Java中,定義注解其實(shí)和定義接口差不多,只需要在interface前添加一個(gè)@符號(hào)就可以,即
@interface Zhujie{ },
這就表明我們定義了一個(gè)名為 @Zhujie 的注解。
注解中的方法即為注解的元素,元素中不能包含參數(shù),返回值只能為簡(jiǎn)單數(shù)據(jù)類型、String、Class、emnus、注釋 和這些類型的數(shù)組
//自定義注解 @Zhujie ,該注解有兩個(gè)元素 personId、company public @interface Zhujie(){ int personId(); //元素1 String company() default "[unassigned]"; //元素2 }
注解定義完之后就可以使用了,注解是一種特殊的修飾符,在其他修飾符(例如,public、static 或者 final 等)使用地方都可以使用注解。
按照慣例,注解應(yīng)該放在其他修飾符的前面。注解的聲明用@符號(hào)后面跟上這個(gè)注解類型的名字,再后面加上括號(hào),括號(hào)中列出這個(gè)注釋中元素的key-value對(duì),其中,元素名為key ,值必須是常量。例如:
@Zhujie(personId=20151120,company="YeePay")
如果注解中只有一個(gè)元素且元素名字為 value,那么在使用這個(gè)注解的時(shí)候,元素的名字和等號(hào)都可以省略,例如:
public @interface Zhujie(){ String value(); } //使用方式 @Zhujie(value="hello") 或 @Zhujie("hello")
2.當(dāng)我們使用@interface定義一個(gè)注解時(shí),需要確定這個(gè)注解的生命周期和需要用到哪些地方。這就用到了注解的注解--元注解,其中@Retention 用來(lái)確定這個(gè)注解的生命周期;@Target 指定注解使用的目標(biāo)范圍(類、方法、字段等)