- 所有超级接口:
-
AnnotatedConstruct
- 所有已知子接口:
-
ArrayType
,DeclaredType
,ErrorType
,ExecutableType
,IntersectionType
,NoType
,NullType
,PrimitiveType
,ReferenceType
,TypeVariable
,UnionType
,WildcardType
代表Java编程语言中的类型。类型包括原始类型、声明类型(类和接口类型)、数组类型、类型变量和空类型。还表示通配符类型参数、可执行体的签名和返回类型,以及对应于包、模块和关键字
void
的伪类型。
应使用Types
中的实用方法来比较类型。不能保证任何特定类型始终由相同的对象表示。
要基于 TypeMirror
对象的类实现操作,要么使用访问者,要么使用getKind()
方法的结果。在此建模层次结构中,使用 instanceof
并不一定是确定对象的有效类的可靠习语,因为实现可能选择使单个对象实现多个TypeMirror
子接口。
- 参见Java语言规范:
-
4.1 类型和值的种类
4.2 原始类型和值
4.3 引用类型和值
4.4 类型变量
4.5 参数化类型
4.8 原始类型
4.9 交集类型
10.1 数组类型
- 自1.6起:
- 1.6
- 另请参见:
-
Method Summary
Modifier and TypeMethodDescription<R,
P> R accept
(TypeVisitor<R, P> v, P p) 对此类型应用访问者。boolean
遵守Object.equals
的一般契约。<A extends Annotation>
AgetAnnotation
(Class<A> annotationType) 如果存在指定类型的注解,则返回此构造的注解,否则返回null
。List
<? extends AnnotationMirror> 返回直接存在于此构造上的注解。<A extends Annotation>
A[]getAnnotationsByType
(Class<A> annotationType) 返回与此构造关联的注解。getKind()
返回此类型的kind
。int
hashCode()
遵守Object.hashCode
的一般契约。toString()
返回此类型的信息性字符串表示。
-
Method Details
-
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()返回直接存在于此构造上的注解。请注意,此方法返回的任何注解都是类型注解。
- 指定者:
-
getAnnotationMirrors
在接口AnnotatedConstruct
中 - 返回:
- 直接存在于此构造上的注解;如果没有,则返回空列表
- 自1.8起:
- 1.8
-
getAnnotation
返回指定类型的注解,如果存在此类注解,则返回该注解,否则返回null
。此方法返回的注解可能包含一个值为
Class
类型的元素。该值无法直接返回:无法获取定位和加载类所需的信息(例如要使用的类加载器),并且该类可能根本无法加载。尝试通过调用返回的注解上的相关方法来读取Class
对象将导致MirroredTypeException
,从中可以提取相应的TypeMirror
。类似地,尝试读取Class[]
值元素将导致MirroredTypesException
。注意:此方法与此接口及相关接口中的其他方法不同。它操作运行时反射信息 —— 当前加载到VM中的注解接口的表示 —— 而不是这些接口中定义并在整个接口中使用的表示。因此,调用返回的注解对象上的方法可能会引发许多在核心反射中调用返回的注解对象上调用方法时可能引发的异常。此方法适用于编写为操作已知、固定注解接口集的调用者。
请注意,此方法返回的任何注解都是类型注解。
- 指定者:
-
getAnnotation
在接口AnnotatedConstruct
- 类型参数:
-
A
- 注解接口 - 参数:
-
annotationType
- 对应于注解接口的Class
对象 - 返回:
-
如果存在指定类型的注解,则返回此构造的注解,否则返回
null
- 自版本:
- 1.8
- 参见:
-
getAnnotationsByType
返回与此构造关联的注解。如果没有与此构造关联的注解,则返回值为长度为0的数组。直接或间接存在于构造C上的注解的顺序将计算为如果在构造C上间接存在的注解在其容器注解的值元素中以它们出现的顺序直接存在于构造C上。此方法与AnnotatedConstruct.getAnnotation(Class)
之间的区别在于,此方法检测其参数是否为可重复注解接口,如果是,则尝试通过“查找”容器注解来找到一个或多个该类型的注解。此方法返回的注解可能包含一个值为
Class
类型的元素。该值无法直接返回:无法获取定位和加载类所需的信息(例如要使用的类加载器),并且该类可能根本无法加载。尝试通过调用返回的注解上的相关方法来读取Class
对象将导致MirroredTypeException
,从中可以提取相应的TypeMirror
。类似地,尝试读取Class[]
值元素将导致MirroredTypesException
。注意:此方法与此接口及相关接口中的其他方法不同。它操作运行时反射信息 —— 当前加载到VM中的注解接口的表示 —— 而不是这些接口中定义并在整个接口中使用的表示。因此,调用返回的注解对象上的方法可能会引发许多在核心反射中调用返回的注解对象上调用方法时可能引发的异常。此方法适用于编写为操作已知、固定注解接口集的调用者。
请注意,此方法返回的任何注解都是类型注解。
- 指定者:
-
getAnnotationsByType
在接口AnnotatedConstruct
- 类型参数:
-
A
- 注解接口 - 参数:
-
annotationType
- 对应于注解接口的Class
对象 - 返回:
- 如果此构造上存在指定注解类型的注解,则返回此构造的注解,否则返回空数组
- 自版本:
- 1.8
- 参见:
-
accept
对此类型应用访问者。- 类型参数:
-
R
- 访问者方法的返回类型 -
P
- 访问者方法的附加参数的类型 - 参数:
-
v
- 操作此类型的访问者 -
p
- 访问者的附加参数 - 返回:
- 访问者指定的结果
-