黑马程序员技术交流社区

标题: 注解总结 [打印本页]

作者: 陈兆辉    时间: 2014-9-23 10:43
标题: 注解总结
注解
注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有这种标记,以后,java编译器、
开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的是。标记可以
加在包、类、字段、方法、方法的参数以及局部变量上。
看java.lang包,可以看到JDK中提供的最基本的annotation。

@SuppressWarning():去掉编译时的警告(注意)
@Deprecater:下面的方法已过时
@Override:下面的方法是复写方法,如果复写出错,会提示。

元注解
@Retention,三种取值:RetentionPolicy.SOURCE、RetentionPolicy.CLASS、RetentionPolicy.RUNTIME,
分别对应:java源文件-->class文件-->内存中的字节码。default to RetentionPolicy.CLASS
@Target:该注解可以放在什么位置:TYPE(类型)、METHOD(方法)、FIELD(字段)、LOCAL_VARIABLE(局部变量)、
PACKAGE(包)、PARAMENTER(形式参数)、ANNOTATION_TYPE(注解)、CONSTRUCTOR(构造方法)

Interface Type:1.5以后出现的接口,是Class、Interface、Enum、Annotation等类的父接口。

为注解添加高级属性
1、数组类型的属性:
int[] arrayAttr() default{1,2,3};
@MyAnnotation(arrayAttr = {4,6,7});
注:如果数组属性只有一个元素,这时属性部分可以省略大括号
2、枚举类型的属性
EnumTest.TrafficLamp lamp();
@MyAnnotation(lamp=EnumTest.TrafficLamp.GREEN)
3、注解类型的属性
MetaAnnotation annotationAttr() default @MetaAnnotation("xxx");
@MyAnnotation(annotationAttr = @MetaAnnotation("xxxx"));
作者: cs8630323    时间: 2014-9-23 14:07
发到blog不行?
作者: wisderm1    时间: 2014-9-23 14:27
加油!!一起努力哈!!
作者: 15579171087    时间: 2014-9-23 16:10
学习了。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2