-
- All Known Subinterfaces:
-
ArrayType
,DeclaredType
,Element
,ErrorType
,ExecutableElement
,ExecutableType
,IntersectionType
,ModuleElement
,NoType
,NullType
,PackageElement
,Parameterizable
,PrimitiveType
,QualifiedNameable
,ReferenceType
,TypeElement
,TypeMirror
,TypeParameterElement
,TypeVariable
,UnionType
,VariableElement
,WildcardType
public interface AnnotatedConstruct
表示可以注释的构造。 构造是element或type 。 元素上的注释位于声明上 ,而类型上的注释位于类型名称的特定用途上。 在该界面中使用直接存在 , 存在 , 间接存在和关联的术语来精确地描述通过本文定义的方法返回哪些注释。在下面的定义中,注释A具有注释类型AT 。 如果AT是可重复的注释类型,则包含注释的类型是ATC 。
注释A 直接出现在构造C上,如果:
- A显式或隐式声明为应用于C的源代码表示。
通常,如果在C的表示的源代码中出现恰好一个AT类型的注释,则A被明确声明为应用于C。 如果在C上存在多个AT类型的注释,则如果AT是可重复的注释类型,则类型ATC的注释在C上为implicitly declared 。
- A的表示显示在对C可执行输出,如
RuntimeVisibleAnnotations
或RuntimeVisibleParameterAnnotations
一个类文件的属性。
注释A 出现在构造C上,如果有:
- A直接存在于C上 。
- 没有类型AT的注释直接出现在C上 , C是一个类, AT是可继承的, A存在于C的超类中。
- AT是可重复的注释类型,包含注释类型ATC 。
- 类型ATC的注释直接存在于C上 , A是包含在调用直接存在的ATC类型注释的
value
方法的结果中的注释。
- A直接或间接存在于C上 。
- 没有类型AT的注释直接或间接地出现在C上 , C是一个类, AT是可继承的, A与C的超类相关联。
- 从以下版本开始:
- 1.8
- See The Java™ Language Specification:
- 9.6注释类型,9.6.3.3 @Inherited
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 <A extends Annotation>
AgetAnnotation(类<A> annotationType)
返回指定类型的这种构造的注解,如果这样的注释 存在 ,否则null
。List<? extends AnnotationMirror>
getAnnotationMirrors()
返回 直接出现在此构造上的注释。<A extends Annotation>
A[]getAnnotationsByType(类<A> annotationType)
返回与此构造 关联的注释。
-
-
-
方法详细信息
-
getAnnotationMirrors
List<? extends AnnotationMirror> getAnnotationMirrors()
返回 直接出现在此构造上的注释。- 结果
- 直接出现在这个结构上的注释; 如果没有,则为空列表
-
getAnnotation
<A extends Annotation> A getAnnotation(类<A> annotationType)
返回指定类型的这种构造的注解,如果这样的注释存在 ,否则null
。此方法返回的注释可以包含值为
类
的元素。 此值不能直接返回:定位和加载类所需的信息(例如要使用的类加载器)不可用,并且该类可能根本不可加载。 尝试通过在返回的注释上调用相关方法来读取类
对象将导致MirroredTypeException
,从中可以提取相应的TypeMirror
。 同样,尝试读取Class[]
元素将导致MirroredTypesException
。Note: This method is unlike others in this and related interfaces. It operates on runtime reflective information — representations of annotation types currently loaded into the VM — rather than on the representations defined by and used throughout these interfaces. Consequently, calling methods on the returned annotation object can throw many of the exceptions that can be thrown when calling methods on an annotation object returned by core reflection. This method is intended for callers that are written to operate on a known, fixed set of annotation types.
- 参数类型
-
A
- 注释类型 - 参数
-
annotationType
- 与注释类型对应的类
对象 - 结果
-
此构造的指定注释类型的注释(如果存在),否则为
null
- 另请参见:
-
getAnnotationMirrors()
,AnnotatedElement.getAnnotation(java.lang.Class<T>)
,EnumConstantNotPresentException
,AnnotationTypeMismatchException
,IncompleteAnnotationException
,MirroredTypeException
,MirroredTypesException
- See The Java™ Language Specification:
- 9.6.1注释类型元素
-
getAnnotationsByType
<A extends Annotation> A[] getAnnotationsByType(类<A> annotationType)
返回与此构造关联的注释。 如果没有用该构建体相关联的注释,返回值是长度为0注解,它们可直接或间接地存在于构建体C被计算为,如果第C间接本注释直接存在第C代替的顺序的阵列它们的容器注释的顺序,它们出现在容器注释的value元素中。 此方法与getAnnotation(Class)
之间的区别在于此方法检测其参数是否为可重复的注释类型 ,如果是,则尝试通过“查看”容器注释来查找该类型的一个或多个注释。此方法返回的注释可以包含值为
类
的元素。 此值不能直接返回:定位和加载类所需的信息(例如要使用的类加载器)不可用,并且该类可能根本不可加载。 尝试通过在返回的注释上调用相关方法来读取类
对象将导致MirroredTypeException
,从中可以提取相应的TypeMirror
。 同样,尝试读取Class[]
元素将导致MirroredTypesException
。Note: This method is unlike others in this and related interfaces. It operates on runtime reflective information — representations of annotation types currently loaded into the VM — rather than on the representations defined by and used throughout these interfaces. Consequently, calling methods on the returned annotation object can throw many of the exceptions that can be thrown when calling methods on an annotation object returned by core reflection. This method is intended for callers that are written to operate on a known, fixed set of annotation types.
- 参数类型
-
A
- 注释类型 - 参数
-
annotationType
- 与注释类型对应的类
对象 - 结果
- 如果在此构造中存在,则此构造的指定注释类型的注释,否则为空数组
- 另请参见:
-
getAnnotationMirrors()
,getAnnotation(Class)
,AnnotatedElement.getAnnotationsByType(Class)
,EnumConstantNotPresentException
,AnnotationTypeMismatchException
,IncompleteAnnotationException
,MirroredTypeException
,MirroredTypesException
- See The Java™ Language Specification:
- 9.6注释类型,9.6.1注释类型元素
-
-