- 所有父级接口:
AnnotatedConstruct
- 所有已知的子接口:
ArrayType
,DeclaredType
,ErrorType
,ExecutableType
,IntersectionType
,NoType
,NullType
,PrimitiveType
,ReferenceType
,TypeVariable
,UnionType
,WildcardType
表示 Java 编程语言中的类型。类型包括基本类型、声明类型(类和接口类型)、数组类型、类型变量和空类型。还表示了通配符类型参数、可执行文件的签名和返回类型,以及对应于包、模块和关键字
void
的伪类型。
应使用 Types
中的实用方法比较类型。无法保证任何特定类型将始终由同一对象表示。
要基于 TypeMirror
对象的类实现操作,请使用 游客 或使用 getKind()
方法的结果。使用 instanceof
是 not 必然是确定此建模层次结构中对象的有效类的可靠习惯用法,因为实现可以选择让单个对象实现多个 TypeMirror
子接口。
- 看Java 语言规范:
-
4.1 类型和值的种类
4.2 原始类型和值
4.3 引用类型和值
4.4 类型变量
4.5 参数化类型
4.8 原始类型
4.9 交叉路口类型
10.1 数组类型
- 自从:
- 1.6
- 参见:
-
方法总结
修饰符和类型方法描述<R,
P> R accept
(TypeVisitor<R, P> v, P p) 将访问者应用于此类型。boolean
遵守Object.equals
的总合同。<A extends Annotation>
AgetAnnotation
(Class<A> annotationType) 如果这样的注释是 present ,则返回此构造的指定类型的注解,否则返回null
。List<? extends AnnotationMirror>
返回此构造上的 directly present 注释。<A extends Annotation>
A[]getAnnotationsByType
(Class<A> annotationType) 返回带有此构造的 associated 注释。getKind()
返回此类型的kind
。int
hashCode()
遵守Object.hashCode
的总合同。toString()
返回此类型的信息字符串表示形式。
-
方法详情
-
getKind
TypeKind getKind()返回此类型的kind
。- 返回:
-
这种类型的
kind
-
equals
遵守Object.equals
的总合同。但是,此方法不指示两个类型是否表示同一类型。类型相等的语义比较应该改用Types.isSameType(TypeMirror, TypeMirror)
。t1.equals(t2)
和Types.isSameType(t1, t2)
的结果可能不同。 -
hashCode
int hashCode()遵守Object.hashCode
的总合同。 -
toString
String toString()返回此类型的信息字符串表示形式。如果可能,字符串的形式应适合在源代码中表示此类型。如果可能,结果中嵌入的任何名称都是合格的。 -
getAnnotationMirrors
List <? extends AnnotationMirror > getAnnotationMirrors()返回此构造上的 directly present 注释。请注意,此方法返回的任何注释都是类型注解。
- 指定者:
getAnnotationMirrors
在接口AnnotatedConstruct
中- 返回:
- 此构造上的注释 directly present;如果没有,则为空列表
- 自从:
- 1.8
-
getAnnotation
如果这样的注释是 present ,则返回此构造的指定类型的注解,否则返回null
。此方法返回的注释可能包含一个值为
Class
类型的元素。该值不能直接返回:定位和加载类所需的信息(例如要使用的类加载器)不可用,并且该类可能根本无法加载。尝试通过对返回的注释调用相关方法来读取Class
对象将导致MirroredTypeException
,可以从中提取相应的TypeMirror
。同样,尝试读取Class[]
值元素将导致MirroredTypesException
。笔记:此方法与此接口和相关接口中的其他方法不同。它对运行时反射信息(当前加载到 VM 中的注释接口的表示)进行操作,而不是对这些接口定义和使用的表示进行操作。因此,在返回的注解对象上调用方法会抛出许多在调用核心反射返回的注解对象上的方法时可能抛出的异常。此方法适用于编写为在一组已知的固定注释接口上进行操作的调用方。
请注意,此方法返回的任何注释都是类型注解。
- 指定者:
getAnnotation
在接口AnnotatedConstruct
中- 类型参数:
A
- 注释接口- 参数:
annotationType
——注解接口对应的Class
对象- 返回:
-
如果此类注解为 present ,则此构造的指定类型注解,否则为
null
- 自从:
- 1.8
- 参见:
-
getAnnotationsByType
返回带有此构造的 associated 注释。如果没有与此构造关联的注释,则返回值是长度为 0 的数组。直接或间接出现在构造上的注释的顺序C被计算为好像间接存在注解C直接出现在C代替它们的容器注解,按照它们在容器注解的值元素中出现的顺序。此方法与AnnotatedConstruct.getAnnotation(Class)
之间的区别在于,此方法检测其参数是否为 repeatable annotation interface ,如果是,则尝试通过“查看”容器注解来查找该类型的一个或多个注释。此方法返回的注释可能包含一个值为
Class
类型的元素。该值不能直接返回:定位和加载类所需的信息(例如要使用的类加载器)不可用,并且该类可能根本无法加载。尝试通过对返回的注释调用相关方法来读取Class
对象将导致MirroredTypeException
,可以从中提取相应的TypeMirror
。同样,尝试读取Class[]
值元素将导致MirroredTypesException
。笔记:此方法与此接口和相关接口中的其他方法不同。它对运行时反射信息(当前加载到 VM 中的注释接口的表示)进行操作,而不是对这些接口定义和使用的表示进行操作。因此,在返回的注解对象上调用方法会抛出许多在调用核心反射返回的注解对象上的方法时可能抛出的异常。此方法适用于编写为在一组已知的固定注释接口上进行操作的调用方。
请注意,此方法返回的任何注释都是类型注解。
- 指定者:
getAnnotationsByType
在接口AnnotatedConstruct
中- 类型参数:
A
- 注释接口- 参数:
annotationType
——注解接口对应的Class
对象- 返回:
- 如果存在于此构造上,则此构造针对指定注解类型的注解,否则为空数组
- 自从:
- 1.8
- 参见:
-
accept
将访问者应用于此类型。- 类型参数:
R
- 访问者方法的返回类型P
- 访问者方法的附加参数的类型- 参数:
v
- 在此类型上运行的访问者p
- 访问者的附加参数- 返回:
- 访问者指定的结果
-