Java中的元注解
元注解的作用是负责注解其他注解,Java定义了4个标准的元注解,他们被用来提供对其他annotation类型说明。
这些类型和他们所支持的类在java.lang.annotation包中可以找到【@Target、@Retention、@Documented、@Inherited】
@Target:用于描述注解的使用范围(即:被@target注解的注解可以用在什么地方)
@Retention:表示需要在什么级别保存该注解信息,用于描述注解的生命周期
它有三个级别:1)SOURCE 2)CLASS 3)RUNTIME
@Documented:表示该注解会被包含在javadoc中
@Inherited:说明子类可以继承父类中的该注解
下图是JDK中 @Deprecated的源码:
图中用来@Documented、@Retention、@Target元注解。
在@Retention元注解中有个参数 RUNTIME,代表了定义的这个注解会保留在程序运行时。
在@Target元注解中有多个参数:
-
CONSTRUCTOR: 该参数表示,定义的此注解可以用在构造器上
-
FIELD: 可以用在字段上
-
LOCAL_VARIABLE: 可以用在局部变量上
-
METHOD: 可以用在方法上
-
PACKAGE: 可以用在包上
-
PARAMETER: 可以用在参数上
-
TYPE: 可以用在类上