@interface 注解详解
- @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 指定注解使用的目标范围(类、方法、字段等)