-  
       
public interface Types用于操作类型的实用方法。兼容性注意:在将来的平台版本中,可以将方法添加到此接口。
- 从以下版本开始:
 - 1.6
 - 另请参见:
 -  
         
ProcessingEnvironment.getTypeUtils() 
 
-  
        
       
-  
             
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 ElementasElement(TypeMirror t)返回与类型对应的元素。TypeMirrorasMemberOf(DeclaredType containing, Element element)当该元素被视为给定类型的成员或以其他方式直接包含时,返回该元素的类型。TypeElementboxedClass(PrimitiveType p)返回给定基元类型的盒装值的类。TypeMirrorcapture(TypeMirror t)将捕获转换应用于类型。booleancontains(TypeMirror t1, TypeMirror t2)测试一个类型参数是否 包含另一个。List<? extends TypeMirror>directSupertypes(TypeMirror t)返回类型的直接超类型。TypeMirrorerasure(TypeMirror t)返回类型的擦除。ArrayTypegetArrayType(TypeMirror componentType)返回具有指定组件类型的数组类型。DeclaredTypegetDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)返回与type元素和实际类型参数对应的类型。DeclaredTypegetDeclaredType(DeclaredType containing, TypeElement typeElem, TypeMirror... typeArgs)返回与type元素和实际类型参数对应的类型,给定 containing type作为成员。NoTypegetNoType(TypeKind kind)返回在没有实际类型的情况下使用的伪类型。NullTypegetNullType()返回null类型。PrimitiveTypegetPrimitiveType(TypeKind kind)返回基本类型。WildcardTypegetWildcardType(TypeMirror extendsBound, TypeMirror superBound)返回一个新的通配符类型参数。booleanisAssignable(TypeMirror t1, TypeMirror t2)测试一种类型是否可以分配给另一种类型。booleanisSameType(TypeMirror t1, TypeMirror t2)测试两个TypeMirror对象是否表示相同的类型。booleanisSubsignature(ExecutableType m1, ExecutableType m2)测试一个方法的签名是否是另一个类的 子签名 。booleanisSubtype(TypeMirror t1, TypeMirror t2)测试一种类型是否是另一种类型的子类型。PrimitiveTypeunboxedType(TypeMirror t)返回给定类型的未装箱值的类型(基本类型)。 
 -  
             
 
-  
        
       
-  
             
方法详细信息
-  
asElement
Element asElement(TypeMirror t)
返回与类型对应的元素。 类型可以是DeclaredType或TypeVariable。 如果类型不是具有相应元素的类型,则返回null。- 参数
 -  
              
t- 要映射到元素的类型 - 结果
 - 与给定类型对应的元素
 
 
-  
isSameType
boolean isSameType(TypeMirror t1, TypeMirror t2)
测试两个TypeMirror对象是否表示相同的类型。警告:如果此方法的任一参数表示通配符,则此方法将返回false。 因此,通配符与其自身的类型不同。 一开始这可能会令人惊讶,但是一旦你认为这样的例子必须被编译器拒绝就有意义:
List<?> list = new ArrayList<Object>();list.add(list.get(0));由于注释只是与类型相关联的元数据,因此在计算两个
TypeMirror对象是否为同一类型时, 不会考虑任一参数上的注释集。 特别是,两个TypeMirror对象可以具有不同的注释,但仍然被认为是相同的。- 参数
 -  
              
t1- 第一种类型 -  
              
t2- 第二种类型 - 结果
 -  
              
true当且仅当两种类型相同时 
 
-  
isSubtype
boolean isSubtype(TypeMirror t1, TypeMirror t2)
测试一种类型是否是另一种类型的子类型。 任何类型都被认为是其自身的子类型。- 参数
 -  
              
t1- 第一种类型 -  
              
t2- 第二种类型 - 结果
 -  
              
true当且仅当第一个类型是第二个类型的子类型时 - 异常
 -  
              
IllegalArgumentException- 如果给出可执行文件,包或模块的类型 - See The Java™ Language Specification:
 - 4.10子类型
 
 
-  
isAssignable
boolean isAssignable(TypeMirror t1, TypeMirror t2)
测试一种类型是否可以分配给另一种类型。- 参数
 -  
              
t1- 第一种类型 -  
              
t2- 第二种类型 - 结果
 -  
              
true当且仅当第一种类型可分配给第二种类型时 - 异常
 -  
              
IllegalArgumentException- 如果给出可执行文件,包或模块的类型 - See The Java™ Language Specification:
 - 5.2分配转换
 
 
-  
contains
boolean contains(TypeMirror t1, TypeMirror t2)
测试一个类型参数是否 包含另一个。- 参数
 -  
              
t1- 第一种类型 -  
              
t2- 第二种类型 - 结果
 -  
              
true当且仅当第一种类型包含第二种类型时 - 异常
 -  
              
IllegalArgumentException- 如果给出可执行文件,包或模块的类型 - See The Java™ Language Specification:
 - 4.5.1.1类型参数遏制和等价
 
 
-  
isSubsignature
boolean isSubsignature(ExecutableType m1, ExecutableType m2)
测试一个方法的签名是否是另一个类的 子签名 。- 参数
 -  
              
m1- 第一种方法 -  
              
m2- 第二种方法 - 结果
 -  
              
true当且仅当第一个签名是第二个签名的子签名时 - See The Java™ Language Specification:
 - 8.4.2方法签名
 
 
-  
directSupertypes
List<? extends TypeMirror> directSupertypes(TypeMirror t)
返回类型的直接超类型。 接口类型(如果有)将显示在列表的最后。 对于没有直接超级接口的接口类型,将返回表示java.lang.Object的类型镜像。- 参数
 -  
              
t- 正在检查的类型 - 结果
 - 直接超类型,如果没有,则为空列表
 - 异常
 -  
              
IllegalArgumentException- 如果给出可执行文件,包或模块的类型 - See The Java™ Language Specification:
 - 4.10子类型
 
 
-  
erasure
TypeMirror erasure(TypeMirror t)
返回类型的擦除。- 参数
 -  
              
t- 要删除的类型 - 结果
 - 删除给定类型
 - 异常
 -  
              
IllegalArgumentException- 如果给出了包或模块的类型 - See The Java™ Language Specification:
 - 4.6类型擦除
 
 
-  
boxedClass
TypeElement boxedClass(PrimitiveType p)
返回给定基元类型的盒装值的类。 也就是说,应用了拳击转换 。- 参数
 -  
              
p- 要转换的基元类型 - 结果
 - 
               类别为 
              
p的盒装值的类 - See The Java™ Language Specification:
 - 5.1.7拳击转换
 
 
-  
unboxedType
PrimitiveType unboxedType(TypeMirror t)
返回给定类型的未装箱值的类型(基本类型)。 也就是说,应用了拆箱转换 。- 参数
 -  
              
t- 要取消装箱的类型 - 结果
 - 
               类型为 
              
t的未装箱值的类型 - 异常
 -  
              
IllegalArgumentException- 如果给定类型没有拆箱转换 - See The Java™ Language Specification:
 - 5.1.8拆箱转换
 
 
-  
capture
TypeMirror capture(TypeMirror t)
将捕获转换应用于类型。- 参数
 -  
              
t- 要转换的类型 - 结果
 - 应用捕获转换的结果
 - 异常
 -  
              
IllegalArgumentException- 如果为可执行文件,包或模块指定了类型 - See The Java™ Language Specification:
 - 5.1.10捕获转换
 
 
-  
getPrimitiveType
PrimitiveType getPrimitiveType(TypeKind kind)
返回基本类型。- 参数
 -  
              
kind- 要返回的原始类型 - 结果
 - 原始类型
 - 异常
 -  
              
IllegalArgumentException- 如果kind不是原始类型 
 
-  
getNullType
NullType getNullType()
返回null类型。 这是null的类型。- 结果
 - null类型
 
 
-  
getNoType
NoType getNoType(TypeKind kind)
返回在没有实际类型的情况下使用的伪类型。 要返回的类型可以是VOID或NONE。要获得对应于一个封装或模块的伪类型,呼叫
asType()元素建模上package或模块 。 可以分别使用Elements.getPackageElement(CharSequence)或Elements.getModuleElement(CharSequence)将名称转换为包或模块的元素。- 参数
 -  
              
kind- 要返回的类型 - 结果
 - 
               假类型 
              
VOID或NONE - 异常
 -  
              
IllegalArgumentException- 如果kind无效 
 
-  
getArrayType
ArrayType getArrayType(TypeMirror componentType)
返回具有指定组件类型的数组类型。- 参数
 -  
              
componentType- 组件类型 - 结果
 - 具有指定组件类型的数组类型。
 - 异常
 -  
              
IllegalArgumentException- 如果组件类型对阵列无效 
 
-  
getWildcardType
WildcardType getWildcardType(TypeMirror extendsBound, TypeMirror superBound)
返回一个新的通配符类型参数。 可以指定通配符的任何一个边界,也可以不指定,但不能同时指定。- 参数
 -  
              
extendsBound- extends(upper)bound,如果没有,null -  
              
superBound- 超级(下限),如果没有,null - 结果
 - 一个新的通配符
 - 异常
 -  
              
IllegalArgumentException- 如果边界无效 
 
-  
getDeclaredType
DeclaredType getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)
返回与type元素和实际类型参数对应的类型。 鉴于该类型元件Set和用于类型镜String,例如,该方法可用于获得参数化的类型Set<String>。类型参数的数量必须等于type元素的形式类型参数的数量,或者必须为零。 如果为零,并且type元素是泛型的,则返回type元素的原始类型。
如果返回参数化类型,则其类型元素不得包含在通用外部类中。 例如,参数化类型
Outer<String>.Inner<Number>可以通过首先使用此方法获取类型Outer<String>,然后调用getDeclaredType(DeclaredType, TypeElement, TypeMirror...)来构造 。- 参数
 -  
              
typeElem- 类型元素 -  
              
typeArgs- 实际的类型参数 - 结果
 - 与type元素和实际类型参数对应的类型
 - 异常
 -  
              
IllegalArgumentException- 如果给出的类型参数太多或太少,或者提供了不合适的类型参数或类型元素 
 
-  
getDeclaredType
DeclaredType getDeclaredType(DeclaredType containing, TypeElement typeElem, TypeMirror... typeArgs)
返回与type元素和实际类型参数对应的类型,给定它是其成员的containing type 。 例如,参数化类型Outer<String>.Inner<Number>可以通过首先使用getDeclaredType(TypeElement, TypeMirror...)获取类型Outer<String>,然后调用此方法来构造。如果包含类型是参数化类型,则类型参数的数量必须等于
typeElem的正式类型参数的数量。 如果未参数化或者如果它是null,则此方法等效于getDeclaredType(typeElem, typeArgs)。- 参数
 -  
              
containing- 包含类型,如果没有,null -  
              
typeElem- 类型元素 -  
              
typeArgs- 实际的类型参数 - 结果
 - 与给定类型中包含的type元素和实际类型参数对应的类型
 - 异常
 -  
              
IllegalArgumentException- 如果给出的类型参数太多或太少,或者提供了不合适的类型参数,类型元素或包含类型 
 
-  
asMemberOf
TypeMirror asMemberOf(DeclaredType containing, Element element)
当该元素被视为给定类型的成员或以其他方式直接包含时,返回该元素的类型。 例如,当作为参数化类型Set<String>的成员查看时,Set.add方法是ExecutableType其参数类型为String。- 参数
 -  
              
containing- 包含类型 -  
              
element- 元素 - 结果
 - 从包含类型查看的元素类型
 - 异常
 -  
              
IllegalArgumentException- 如果元素不是给定类型的有效元素 
 
 -  
 
 -