java基础之注解

    1、jdk内置的基本注解类型(3个)
    2、自定义注解类型
    3、对注解进行注解(4个)
    4、利用反射获取注解信息
①从jdk5.0开始,Java增加了对元数据(MeatData)的支持,也就是Annotation(注解),Annotation其实
就是代码里的"特殊标记",这些标记可以在编译,类加载,运行时被读取,并执行响应的处理,通过使用Annotation,
程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息.
②Annotation可以向修饰符一样被使用,可以用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息
被保存在Annotation的 name="value"对中.
③Annotation 能被用来为程序元素(类,方法,成员变量等)设置元素据

一、三个基本的Annotation
1>@Override  限定重写父类的方法,只能用于方法.
2>@Deprecated: 用于表示某个程序元素(类,方法等)已经过时

3>@SuppressWarnings: 抑制编译器警告
@SuppressWarnings({ "rawtypes", "unused" })
List list = new ArrayList();
第一个rawtypes:没有使用泛型,第二个unused:没有使用变量list

二、如何自定义一个注解
public @interface MyAnnotation {
    String[] value() default "hello";
    String values() default "Mean";
}

三、对注解进行注解
用于修饰其他Annotation的定义
JDK5.0提供了专门在注解上的注解类型:
①Retention
②Target
③Documented
④Inherited
元素据: String name = "jc" 其中String和name就是jc的元数据

1>Retention:只能用于修饰一个Annotation定义,用于指定该Annotation可以保留多长时间,
@Rentention包含一个RetentionPolicy类型的成员变量,使用
@Rentention时必须为该value成员变量指定值:
-->RetentionPolicy.SOURCE:编译器直接丢弃这种策略的注释
-->RetentionPolicy.CLASS:编译器将把注释记录在class文件中.
当运行Java程序时,JVM不会保留注释。这是默认值
-->RetentionPolicy.RUNTIME:编译器将把注释记录在class文件中.当运行Java程序时,
Jvm会保留注释.程序可以通过反射获取该注释

2>Target @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
用于修饰Annotation定义,用于指定被修饰的Annotation能用于修饰哪些程序元素.@Target
也包含一个名为value的成员变量

3>Documented
有这个注解的话,该文件可以被javac工具提取

4>Inherited
被他修饰的Annntation具有继承性




















猜你喜欢

转载自geertu.iteye.com/blog/2316895