JDK1.5专门提供了几个元注解的类型:
1、@Retention
可以注意到元注解里有一个RetentionPoicy的代理对象,点击进去:
可以看出是一个枚举类型,只能用于annotations,用于表示该annotations可以保留多长时间,也就是该注解的生命周期,
里面的:
SOURCE:表示在编译的时候会被抛弃;
CLASS:表示注解将要被编译记录在.class文件中,但是不会保留在运行时,是一个默认的行为
RUNTIME:编译时会保留在.class文件中,在运行时也会保留,可以通过反射来获取
使用方式如上图所示。
2、@Target
点进ElementType:
该元注解表示的是能用于修饰那些程序元素
可以看到,其中的ElementType.TYPE,指代的是类、接口、枚举。
使用方式可以如上图所示,指定一个,也可以指定多个:
3、@Documented
该元注解修饰的注解将被javadoc工具提取成文档,并且,定义为Documented的注解必须设置Retention值为RUNTIME.
比如:Date类中有很多方法是Derecated的
而@Deprecated注解是被@Documented元注解修饰的
在生成文档时,Date中的废弃的方法就会被Deprecated标记
4、@Inherited
该元注解表示修饰的注解具有继承性,实际应用比较少。