- 自定义注解
- @Retention(value=RetentionPolicy.SOURCE)
- @Target(ElementType.METHOD)//表示该注解只使用在方法上
- public @interface T_NAME {
- //定义属性
- String name() default "";
- }
- 使用方式
- public class Test {
- @T_NAME(name="zhangsan")
- public void getname(){
- }
- }
为注解增加属性
类型 属性名() default 默认值;
value属性
如果一个注解中有一个名称为value的属性,且你只想设置value属性(即其他属性都采用默认值或者你只有一个value属性),那么可以省略掉“value=”部分。
@Retention(value=RetentionPolicy.SOURCE)
@Target(ElementType.METHOD)//表示该注解只使用在方法上
public @interface T_NAME {
String value();//定义
}
使用
@T_NAME("zhangsan")//
public void getname(){
}
为注解增加高级属性
数组类型的属性
增加数组类型的属性:int[] arrayAttr() default {1,2,4};
应用数组类型的属性:@MyAnnotation(arrayAttr={2,4,5})
如果数组属性只有一个值,这时候属性值部分可以省略大括号,如:@MyAnnotation(arrayAttr=2),这就表示数组属性只有一个值,值为2
枚举类型的属性
- 增加枚举类型的属性:EumTrafficLamp lamp() default EumTrafficLamp.RED;
- 应用枚举类型的属性:@MyAnnotation(lamp=EumTrafficLamp.GREEN)