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)
返回类型对应一个元素类型与实际类型参数,给出了
containing type它是其中的一员。
|
DeclaredType |
getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)
返回对应于类型元素和实际类型参数的类型。
|
NoType |
getNoType(TypeKind kind)
返回一个不使用实际类型的伪类型。
|
NullType |
getNullType()
返回空类型。
|
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)
测试是否一个方法的签名是一subsignature另一。
|
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
当且仅当第一个签名是一subsignature第二
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
的延伸(上)的约束,或
null
如果没有
superBound
-超(低)的约束,或
null
如果没有
IllegalArgumentException
如果界限是无效的
DeclaredType getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)
Set
和
String
,型镜式元件,这种方法可以应用到参数化类型的
Set<String>
类型参数的数量必须等于类型元素的正式类型参数的数量,或者必须是零。如果为零,如果类型元素是通用的,则返回类型元素的原始类型。
如果返回了参数化类型,则它的类型元素不能包含在一个泛型的外部类中。例如,参数化的类型,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
如果元素不给定类型的一个有效的
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.