黑马程序员__Java中的注解

来源:互联网 发布:java mq消息队列 编辑:程序博客网 时间:2024/05/22 14:06

                                                                        ----------------------android培训、java培训、期待与您交流! ----------------------

注解:相当于一种标记。可以加在包、类、方法、成员变量、局部变量和方法参数上。
开发工具和其他程序可以用反射来了解类及各种元素上有无何种标记,有什么标记,就干什么标记的事。
@SuppressWarnings:取消显示指定的编译器警告SOURCE阶段
@Deprecated:过时标记(eclipse中,会在过时的方法、字段等上面画一横杠)RUNTIME阶段
@Override:重写标记SOURCE阶段
自定义注释:public @Interface 注释名{}注释默认的在class文件阶段
注释的三个阶段:RetentionPolicy.SOURCE-->源文件阶段
RetentionPolicy.CLASS-->class文件阶段
RetentionPolicy.RUNTIME-->字节码文件阶段
class文件和字节码文件是不同,从源文件到字节码文件的过程-->源文件中有注释,编译器将源文件编译成class文件,可能会将源文件中的有些注释去掉,加载器将class文件经过检查等操作之后加载到内存成为字节码文件,也会将一些注释去掉。
修改注释的作用阶段:在自定义注释上面添加元注释-->@Retention(RetentionPolicy.RUNTIME)
注释可以加在哪些上面?-->可以加在注释、包、类 接口 枚举、方法、构造方法、成员变量、局部变量和方法参数上。
ANNOTATION_TYPE、PACKAGE、TYPE、METHOD、CONSTRUCTOR、FIELD、LACAL_VARIABLE、PARAMETER
自定义的注释限定作用域:在自定义注释上面添加元注释-->@Target(Element.TYPE)
注解的属性及属性应用:注解中属性返回值的类型,不能是普通类类型。只能是:8种基本类型、String、Class、Enum、Annotation和这些类型的数组
1.基本类型的属性 在注释类中添加 String color();
String color() default "blue";//为属性添加缺省值
@ItcastAnnotation(color="red")
2.value属性 当注释类中,只为value赋值,没有其他属性或其他属性都使用缺省值,这时,可以省略value=。如,SuppressWarnings("deprecation")
3.数组属性 int[] arrayAttr();--> @ItcastAnnocation(arrauAttr={1,2,3})
int[] arrayAttr() dafault {1,2,3}
int[] arrayAttr() default 1; @ItcastAnnocation(arrauAttr=1)//数组中属性值只有一个时。
4.枚举类型的属性 EnumTest.TrafficLamp lamp();-->@ItcastAnnocation(lamp=EnumTest.TrafficLamp.YELLOW); -->System.out.println(annotation.lamp());
5.注释类型的属性 MetaAnnotation myAnnotation();-->@ItcastAnnocation(myAnnotation=@MetaAnnotation("xxx"))-->System.out.println(annotation.myAnnotation().value());
6.Class类型的属性 Class cla();-->@ItcastAnnocation(cla=String.class)-->System.out.println(annotation.cla());
                                     ---------------------- android培训、java培训、期待与您交流!

                                ----------------------详细请查看:http://edu.csdn.net/heima

原创粉丝点击