java元注解(注解在注解上的注解)

java

//ElementType.TYPE 给类、接口、枚举上使用

@Target(ElementType.TYPE)//给注解进行注解,表示该注解可以用在什么地方

//@Retention(RetentionPolicy.CLASS)//表示注解传递存活时间,CLASS表示注解保留到编译进行时期,不会被加载到jvm中

@Retention(RetentionPolicy.RUNTIME)//注解可以保留到程序运行时,并被加载到jvm中,因为反射获取的时类的运行时的状态,所以可以通过反射机制读取注解的信息,这个使用较多

public @interface AnnotationClass {

/**

* 元注解:

* ★ 元注解:JDK提供了几个特殊的注解,只能用在注解上面。

* @Target:表示该注解可以用于什么地方,取值如下:

* ElementType.ANNOTATION_TYPE 可以给一个注解进行注解

* ElementType.CONSTRUCTOR 可给构造方法进行注解

* ElementType.FIELD 可给属性进行注解

* ElementType.LOCAL_VARIABLE 可给局部变量进行注解

* ElementType.METHOD 可给方法进行注解

* ElementType.PACKAGE 可给一个包进行注解

* ElementType.PARAMETER 可给一个方法内的参数进行注解

* ElementType.TYPE 可给一个类型进行注解,比如类、接口、枚举

* @Retention:表示注解传递存活时间。取值如下:

* - RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器编译时它将被丢弃。

* - RetentionPolicy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。

* - RetentionPolicy.RUNTIME 注解可保留到程序运行时并被加载到 JVM 中,因此可通过反射机制读取注解的信息。

* @Documented:将注解包含到 Javadoc 中

* @Inherited:允许子类继承父类中的注解 如父类Animal有一个注解@Test,且@Test注解上有@Inherited注解,

* 那么该父类Animal的子类Cat也默认有@Test注解

*/

}

以上是 java元注解(注解在注解上的注解) 的全部内容, 来源链接: utcz.com/z/393669.html

回到顶部