黑马程序员技术交流社区
标题:
知识点梳理02 注解
[打印本页]
作者:
yedong07a
时间:
2013-5-6 20:33
标题:
知识点梳理02 注解
本帖最后由 yedong07a 于 2013-5-11 11:44 编辑
注解类一:
public @interface MetaAnnotation{
String value();
}
注解类二:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface ItcastAnnotation{
int[] arrayAttr() default {3,4, 5};
EnumTest.TrafficLamp lamp() default EnumTest.TrafficLamp.RED;
MetaAnnotation annotationAttr() default @MetaAnnotation("lhm");
}
注解类二分别定义了数组类型、枚举类型、注解类型属性,
枚举和注释都是特殊的类,不能用new创建它们的实例对象,创建枚举的实例对象就是在其中增加元素,创建注解的实例对象直接用@放上一个标记即可。
应用了注解类的类,添加属性:
@ItcastAnnotation(annotationAttr=@MetaAnnotation("flx"), arrayAttr=1)
public class AnnotationTest {
}
对“应用了注解类的类”进行反射操作的类:
public class AnnotationTest {
public static void main(String[] args) {
if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
ItcastAnnotation annotation=AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
System.out.println(annotation.arrayAttr().length);
System.out.println(annotation.lamp().nextLamp());
System.out.println(annotation.annotationAttr().value());
}
}
}
输出结果:
1
GREEN
flx
作者:
许庭洲
时间:
2013-5-7 07:25
值得学习ing!
作者:
HM张勇
时间:
2013-5-7 09:05
收藏了,值得学习!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2