黑马程序员技术交流社区
标题:
注解的属性
[打印本页]
作者:
血马雄风
时间:
2015-8-27 10:09
标题:
注解的属性
注解的属性名与获取属性的方法名完全一样。
注解的属性的类型只能:基本类型、String、Class、枚举、注解,或这些类型的数组
@Retention(value = RUNTIME)
@Target(value=TYPE)
public @interface SourceAnnotation{
String value() default "SourceAnnotation";
}
@Retention(value = RUNTIME)
@Target(value = {TYPE,METHOD})
public @interface MyAnnotation{
//属性,有点怪
String value(); //字符串
String color() default "blue";
int[] arrayAttr() defalut {1, 2, 3}; //数组
enum EnumLamp{RED, GRREN, YELLOW} lamp() default EnumLamp.RED; //枚举 不会错把
@SourceAnnotation sourceAnnotation() default @SourceAnnotation(value = MyAnnotation);
}
@MyAnnotation(sourceAnnotation=@SourceAnnotation("yang"), color="red", arrayAttr={1,2,3})
public class UseAnnotation{
public void getAnnotationAttribute(){
//MyAnnotation myAnnotation = new MyAnnotation(); //?
if(Annotation.class.isAnnotationPresent(MyAnnotation.class)){
MyAnnotation myAnnotation = (MyAnnotation)MyAnnotation.class.newInstance();
System.out.println(myAnnotation.value());
System.out.println(myAnnotation.color());
System.out.println(myAnnotation.arrayAttr().length);
System.out.println(myAnnotation.lamp());
System.out.println(myAnnotation.sourceAnnotation());
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2