|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface Types
用來對型別進行操作的實用工具方法。
相容性注意事項: 在將來的平臺版本中可能會向此介面添加一些方法。
ProcessingEnvironment.getTypeUtils()
方法摘要 | |
---|---|
Element |
asElement(TypeMirror t)
返回對應於型別的元素。 |
TypeMirror |
asMemberOf(DeclaredType containing,
Element element)
當元素被視為給定型別的成員或者直接由給定型別包含時,返回該元素的型別。 |
TypeElement |
boxedClass(PrimitiveType p)
返回給定基本型別的裝箱 (boxed) 值型別的類別。 |
TypeMirror |
capture(TypeMirror t)
對型別應用 capture 轉換。 |
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)
根據給定的包含型別,返回對應於型別元素和實際型別參數的型別(它是給定包含型別的成員)。 |
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)
返回給定型別的拆箱 (unboxed) 值型別(基本型別)。 |
方法詳細資訊 |
---|
Element asElement(TypeMirror t)
DeclaredType
或 TypeVariable
。如果該型別沒有對應元素,則返回 null
。
boolean isSameType(TypeMirror t1, TypeMirror t2)
TypeMirror
物件是否表示同一型別。
警告:如果此方法兩個參數中有一個表示通配符,那麼此方法將返回 false。因此,通配符與其本身的型別不同。初看起來這可能讓人感到很奇怪,但考慮到編譯器一定會拒絕以下範例時,這就很合理了:
List<?> list = new ArrayList<Object>();
list.add(list.get(0));
t1
- 第一種型別t2
- 第二種型別
true
boolean isSubtype(TypeMirror t1, TypeMirror t2)
t1
- 第一種型別t2
- 第二種型別
true
IllegalArgumentException
- 如果給定一個 executable 或 package 型別boolean isAssignable(TypeMirror t1, TypeMirror t2)
t1
- 第一種型別t2
- 第二種型別
true
IllegalArgumentException
- 如果給定一個 executable 或 package 型別boolean contains(TypeMirror t1, TypeMirror t2)
t1
- 第一種型別t2
- 第二種型別
true
IllegalArgumentException
- 如果給定一個 executable 或 package 型別boolean isSubsignature(ExecutableType m1, ExecutableType m2)
m1
- 第一個方法m2
- 第二個方法
true
List<? extends TypeMirror> directSupertypes(TypeMirror t)
t
- 將被檢查的型別
IllegalArgumentException
- 如果給定一個 executable 或 package 型別TypeMirror erasure(TypeMirror t)
t
- 要刪除的型別
IllegalArgumentException
- 如果給定一個 package 型別TypeElement boxedClass(PrimitiveType p)
p
- 要轉換的基本型別
p
的裝箱值型別的類別PrimitiveType unboxedType(TypeMirror t)
t
- 要拆箱的型別
t
的拆箱值型別
IllegalArgumentException
- 如果給定型別無法進行 unboxing 轉換TypeMirror capture(TypeMirror t)
t
- 要轉換的型別
IllegalArgumentException
- 如果給定 executable 或 package 型別PrimitiveType getPrimitiveType(TypeKind kind)
kind
- 要返回的基本型別的種類別
IllegalArgumentException
- 如果 kind
不是基本種類別NullType getNullType()
null
的型別。
NoType getNoType(TypeKind kind)
VOID
或 NONE
。對於包,可以使用 Elements.getPackageElement(CharSequence)
.asType()
替代。
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>
。
型別參數的數量必須等於型別元素的形式型別參數的數量,或者等於 0。如果等於 0,並且型別元素是泛型,則返回該型別元素的原始型別。
如果返回一個參數化型別,則其型別元素不得包含在一般外部類別中。例如,首先使用此方法獲取型別 Outer<String>
,然後調用 getDeclaredType(DeclaredType, TypeElement, TypeMirror...)
,可以建構參數化型別 Outer<String>.Inner<Number>
。
typeElem
- 型別元素typeArgs
- 實際型別參數
IllegalArgumentException
- 如果給定的型別參數太多或太少,或者提供不合適的型別參數或型別元素DeclaredType getDeclaredType(DeclaredType containing, TypeElement typeElem, TypeMirror... typeArgs)
getDeclaredType(TypeElement, TypeMirror...)
獲取型別 Outer<String>
,然後調用此方法,可以建構參數化型別 Outer<String>.Inner<Number>
。
如果包含型別是一個參數化型別,則型別參數的數量必須等於 typeElem
的形式型別參數的數量。如果包含型別不是參數化的,或者為 null
,則此方法等效於 getDeclaredType(typeElem, typeArgs)
。
containing
- 套件含型別;如果沒有,則該參數為 null
typeElem
- 型別元素typeArgs
- 實際型別參數
IllegalArgumentException
- 如果給定的型別參數太多或太少,或者提供了不合適的型別參數、型別元素或包含型別TypeMirror asMemberOf(DeclaredType containing, Element element)
Set<String>
的成員時,Set.add
方法是參數型別為 String
的 ExecutableType
。
containing
- 套件含型別element
- 元素
IllegalArgumentException
- 如果元素對於給定型別無效
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。