public interface Types
兼容性注意:在将来的平台版本中可能会添加到此界面中的方法。
ProcessingEnvironment.getTypeUtils()
Modifier and Type | Method and Description |
---|---|
Element |
asElement(TypeMirror t)
返回与类型相对应的元素。
|
TypeMirror |
asMemberOf(DeclaredType containing, Element element)
返回当该元素被视为给定类型的成员或以其他方式直接包含的元素的类型。
|
TypeElement |
boxedClass(PrimitiveType p)
返回给定基元类型的盒装值的类。
|
TypeMirror |
capture(TypeMirror t)
将捕获转换应用于类型。
|
boolean |
contains(TypeMirror t1, TypeMirror t2)
测试一个类型的参数是否
包含另一个参数。
|
List<? extends TypeMirror> |
directSupertypes(TypeMirror t)
返回类型的直接超类型。
|
TypeMirror |
erasure(TypeMirror t)
返回类型的擦除。
|
ArrayType |
getArrayType(TypeMirror componentType)
返回具有指定组件类型的数组类型。
|
DeclaredType |
getDeclaredType(DeclaredType containing, TypeElement typeElem, TypeMirror... typeArgs)
返回与类型元素和实际类型参数对应的类型,给定一个
8848164983838它是其成员。
|
DeclaredType |
getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)
返回与类型元素和实际类型参数相对应的类型。
|
NoType |
getNoType(TypeKind kind)
返回在没有实际类型适用的情况下使用的伪类型。
|
NullType |
getNullType()
返回null类型。
|
PrimitiveType |
getPrimitiveType(TypeKind kind)
返回一个原始类型。
|
WildcardType |
getWildcardType(TypeMirror extendsBound, TypeMirror superBound)
返回一个新的通配符类型参数。
|
boolean |
isAssignable(TypeMirror t1, TypeMirror t2)
测试一种类型是否可分配给另一种。
|
boolean |
isSameType(TypeMirror t1, TypeMirror t2)
测试两个
TypeMirror 对象是否表示相同的类型。
|
boolean |
isSubsignature(ExecutableType m1, ExecutableType m2)
测试一种方法的
签名是否是另一种方法的
签名 。
|
boolean |
isSubtype(TypeMirror t1, TypeMirror t2)
测试一种类型是否是另一种类型。
|
PrimitiveType |
unboxedType(TypeMirror t)
返回给定类型的未装箱值的类型(原始类型)。
|
Element asElement(TypeMirror t)
DeclaredType
或TypeVariable
。
如果类型不是相应的元素,则返回null
。
t
- 映射到元素的类型
boolean isSameType(TypeMirror t1, TypeMirror t2)
TypeMirror
对象是否表示相同的类型。
警告:如果此方法的任一参数表示通配符,则此方法将返回false。 因此,通配符与本身不同。 首先这可能令人惊讶,但是一旦您认为这样的示例必须被编译器拒绝,这是有道理的:
List<?> list = new ArrayList<Object>();
list.add(list.get(0));
由于注释只是与类型相关联的元数据,因此在计算两个TypeMirror
对象是否相同类型时,两个参数之间的注释集合都不会被考虑。 特别地,两个TypeMirror
对象可以具有不同的注释,并且仍然被认为是相同的。
t1
- 第一种
t2
- 第二种
true
当且仅当两种类型相同时
boolean isSubtype(TypeMirror t1, TypeMirror t2)
t1
- 第一种类型
t2
- 第二种类型
true
当且仅当第一类型是第二类型的子类型时
IllegalArgumentException
- 如果给予可执行文件或打包类型
boolean isAssignable(TypeMirror t1, TypeMirror t2)
t1
- 第一种
t2
- 第二种
true
当且仅当第一个类型可分配给第二个类型
IllegalArgumentException
- 如果给予可执行文件或打包类型
boolean contains(TypeMirror t1, TypeMirror t2)
t1
- 第一种
t2
- 第二种类型
true
当且仅当第一个类型包含第二个
IllegalArgumentException
- 如果给定可执行文件或程序包类型
boolean isSubsignature(ExecutableType m1, ExecutableType m2)
m1
- 第一种方法
m2
- 第二种方法
true
当且仅当第一个签名是第二个签名的子签名
List<? extends TypeMirror> directSupertypes(TypeMirror t)
t
- 正在检查的类型
IllegalArgumentException
- 如果给予可执行文件或打包类型
TypeMirror erasure(TypeMirror t)
t
- 要擦除的类型
IllegalArgumentException
- 如果给定一个包类型
TypeElement boxedClass(PrimitiveType p)
p
- 要转换的原始类型
p
的盒装值的类
PrimitiveType unboxedType(TypeMirror t)
t
- 要取消装箱的类型
t
的未装箱值
IllegalArgumentException
- 如果给定类型没有拆箱转换
TypeMirror capture(TypeMirror t)
t
- 要转换的类型
IllegalArgumentException
- 如果给定可执行文件或程序包类型
PrimitiveType getPrimitiveType(TypeKind kind)
kind
- 要返回的原始类型
IllegalArgumentException
- 如果
kind
不是原始类型
NullType getNullType()
null
的类型。
NoType getNoType(TypeKind kind)
kind
- 要返回的类型
VOID
或
NONE
IllegalArgumentException
- 如果
kind
无效
ArrayType getArrayType(TypeMirror componentType)
componentType
- 组件类型
IllegalArgumentException
- 如果组件类型对数组无效
WildcardType getWildcardType(TypeMirror extendsBound, TypeMirror superBound)
extendsBound
-
extendsBound
(upper)bound,或
null
如果没有)
superBound
- 超(下限),或
null
如果没有)
IllegalArgumentException
- 如果边界无效
DeclaredType getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)
Set
和用于类型镜String
,例如,该方法可用于获得参数化的类型Set<String>
。
类型参数的数量必须等于类型元素的形式类型参数的数量,或者必须为零。 如果为零,并且如果type元素是通用的,则返回类型元素的原始类型。
如果返回了一个参数化类型,则它的type元素不能包含在通用外部类中。 例如,参数化类型Outer<String>.Inner<Number>
可以通过首先使用该方法获得类型Outer<String>
,然后调用getDeclaredType(DeclaredType, TypeElement, TypeMirror...)
来构造 。
typeElem
- 类型元素
typeArgs
- 实际的类型参数
IllegalArgumentException
- 如果给出太多或太少的类型参数,或者是否提供了不适当的类型参数或类型元素
DeclaredType getDeclaredType(DeclaredType containing, TypeElement typeElem, TypeMirror... typeArgs)
Outer<String>.Inner<Number>
可以通过首先使用getDeclaredType(TypeElement, TypeMirror...)
获得类型Outer<String>
,然后调用此方法来构造。
如果包含类型是参数化类型,则类型参数的数量必须等于typeElem
的形式类型参数的数量。 如果没有参数化,或者是null
,则此方法相当于getDeclaredType(typeElem, typeArgs)
。
containing
- 包含类型,或
null
如果没有)
typeElem
- 类型元素
typeArgs
- 实际的类型参数
IllegalArgumentException
- 如果给出太多或太少的类型参数,或者是否提供了不适当的类型参数,类型元素或包含类型
TypeMirror asMemberOf(DeclaredType containing, Element element)
Set<String>
的成员时, Set.add
方法是ExecutableType
,其参数是类型String
。
containing
- 包含类型
element
- 元素
IllegalArgumentException
- 如果元素不是给定类型的有效元素