Java注解元注解

1、@Documented

@Documented
 @Retention(value=RUNTIME)
 @Target(value=ANNOTATION_TYPE)
public @interface Documented
表明一个类型的注释被javadoc默认文件。此类型应用于注释注释的类型的声明,它们的注释会影响它们的客户端使用注释元素的使用。如果一个类型声明是有文档说明的,它的注释将成为注释
元素的公共的接口的一部分。 从以下版本开始: 一点五

2、@Inherited

@Documented
 @Retention(value=RUNTIME)
 @Target(value=ANNOTATION_TYPE)
public @interface Inherited
表示一个注释类型是自动继承的。如果一个继承元注释是目前注释类型声明,以及用户查询类声明的注释类型和类的声明没有注释这种类型,那么类的父类将自动查询注释类型。此过程将被重复
,直到找到该类型的注释,或达到类层次结构的顶部(对象)。如果没有父类具有这种类型的注释,然后查询将显示该类问题没有这样的注释。 请注意,如果使用带注释的类型用于注释一个类以外的任何其他类,则此元注释类型不会有任何效果。注意,这只是原因元注释注释可以从父类继承;对实现的接口注释没有影响。 从以下版本开始: 一点五 See The Java™ Language Specification: 9.6.3.3 @继承

3、@Native

@Documented
 @Target(value=FIELD)
 @Retention(value=SOURCE)
public @interface Native
指示定义一个常量值的字段可以从本机代码中引用。注释可以用作生成本地头文件的工具,以确定是否需要头文件,如果是的话,它应该包含什么声明。 
从以下版本开始: 
一点八 

4、@Repeatable

@Documented
 @Retention(value=RUNTIME)
 @Target(value=ANNOTATION_TYPE)
public @interface Repeatable
注释类型 java.lang.annotation.Repeatable用来指示注释类型的声明它(元)诠释的是重复的。对 @Repeatable值表示包含重复的注释类型的注释类型。 
从以下版本开始: 
一点八 
See The Java™ Language Specification: 
9.6种注释类型,9.7个注释 

5、@Retention

@Documented
 @Retention(value=RUNTIME)
 @Target(value=ANNOTATION_TYPE)
public @interface Retention
表示要保留带注释类型的注释的多长时间。如果没有保留注释在注释类型声明,保留策略默认 RetentionPolicy.CLASS。 
保留元注释只有当元注释类型被直接用于注释时才有效果。如果在另一个注释类型中使用元注释类型作为成员类型,则不会有任何效果。

从以下版本开始: 
一点五 
See The Java™ Language Specification: 
9.6.3.2 @保留 

6、@ Target

@Documented
 @Retention(value=RUNTIME)
 @Target(value=ANNOTATION_TYPE)
public @interface Target
指示注释类型适用的上下文。的声明上下文和语境中注释类型可以适用在JLS 9.6.4.1指定,并由 java.lang.annotation.ElementType枚举常量的源代码表示。 
如果一个@Target元注释在注释类型T是不存在的,然后T型注释可以写成一个除了类型参数声明的任何声明修饰符。

如果一个@Target元注释时,编译器将强制使用限制的ElementType枚举常数表示,与JLS 9.7.4线。

例如,这@Target元注释表明声明的类型本身是一元注释类型。它只能用于注释类型声明:

“目标(ElementType。annotation_type)接口metaannotationtype {…}
这@Target元注释表明声明的类型是专为使用在复杂的注释类型声明的成员类型。它不能用来直接注释任何东西:

@目标({ })接口成员类型{…}
这是一个编译时错误一ElementType常出现超过一次在@Target注释。例如,下面的@Target元注释是非法的:

“目标({ elementtype.field,elementtype.method,ElementType。场})公开@接口虚假…}
从以下版本开始: 
一点五 
See The Java™ Language Specification: 
9.6.4.1”目标,9.7.4注解可能出现 
原文地址:https://www.cnblogs.com/wuhao-0206/p/13089453.html