元注解
Java里面定义了4个标准的元注解:
- @Target
- @Retention
- @Documented
- @Inherited
这四个元注解的作用是负责注解其他注解,其他所有的注解都是通过元注解扩散开来。
Target
这个元注解的作用是负责指明注解的作用域。如果指明类型为METHOD
,说明这个注解只能用在方法上面。
以下是可以指明Target
的所有作用类型:
Retention
这个元注解的作用是对Annotation的作用时间
进行限制:某些Annotation仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的Annotation可能会被虚拟机忽略,而另一些在class被装载时将被读取。
以下是可以指明Retention
的所有作用类型:
RetentionPolicy.SOURCE
:在源文件中有效RetentionPolicy.CLASS
:在class文件中有效RetentionPolicy.RUNTIME
:在运行时有效
Documented
这个元注解的作用是标识是否能够在生成JavaDoc文档是,注解依然保存。这个只是一个标记注解,没有任何成员。
如下:
1.标记有Documented
的Annotation与生成的JavaDoc文档
2.没有标记的Annotation与生成的JavaDoc文档
使用注解的类:
Inherited
这个元注解的作用是来阐述某个被标注的类型是可以被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。