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