-
public interface Types
型で操作を行うためのユーティリティ・メソッドです。互換性に関する注: プラットフォームの将来のリリースでは、このインタフェースにメソッドが追加される可能性があります。
- 導入されたバージョン:
- 1.6
- 関連項目:
ProcessingEnvironment.getTypeUtils()
-
-
メソッドのサマリー
修飾子と型 メソッド 説明 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(TypeElement typeElem, TypeMirror... typeArgs)
型要素と実際の型引数に対応する型を返します。DeclaredType
getDeclaredType(DeclaredType containing, 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)
2つのTypeMirror
オブジェクトが同じ型を表すかどうかをテストします。boolean
isSubsignature(ExecutableType m1, ExecutableType m2)
あるメソッドのシグネチャが別のメソッドのサブシグネチャであるかどうかをテストします。boolean
isSubtype(TypeMirror t1, TypeMirror t2)
ある型が別の型のサブタイプであるかどうかをテストします。PrimitiveType
unboxedType(TypeMirror t)
指定された型のアンボクシングされた値の型(プリミティブ型)を返します。
-
-
-
メソッドの詳細
-
asElement
Element asElement(TypeMirror t)
型に対応する要素を返します。 型はDeclaredType
とTypeVariable
のいずれかです。 型が対応する要素を持たない場合はnull
を返します。- パラメータ:
t
- 要素にマップする型- 戻り値:
- 指定された型に対応する要素
-
isSameType
boolean isSameType(TypeMirror t1, TypeMirror t2)
2つのTypeMirror
オブジェクトが同じ型を表すかどうかをテストします。注意: このメソッドに渡される引数のいずれかがワイルドカードを表している場合、このメソッドはfalseを返します。 そのため、ワイルドカードは自身と同じ型ではありません。 これは一見驚くべきことですが、次のような例はコンパイラに拒否されることから理解できるはずです。
List<?> list = new ArrayList<Object>();
list.add(list.get(0));
注釈は型に関連付けられたメタデータにすぎないため、2つの
TypeMirror
オブジェクトが同じ型かどうかを計算するときに、どちらの引数の注釈セットも考慮されません。 具体的には、2つのTypeMirror
オブジェクトは異なる注釈を持っていても同じと見なされる可能性があります。- パラメータ:
t1
- 1番目の型t2
- 2番目の型- 戻り値:
- 2つの型が同じ場合に限り
true
-
isSubtype
boolean isSubtype(TypeMirror t1, TypeMirror t2)
ある型が別の型のサブタイプであるかどうかをテストします。 型はそれ自体のサブタイプであるとみなされます。- パラメータ:
t1
- 1番目の型t2
- 2番目の型- 戻り値:
- 最初の型が2番目の型のサブタイプである場合に限り
true
- 例外:
IllegalArgumentException
- 実行可能ファイル、パッケージ、またはモジュールの型が指定されている場合- Java™言語仕様:
- 4.10 サブタイプ
-
isAssignable
boolean isAssignable(TypeMirror t1, TypeMirror t2)
ある型を別の型に代入できるかどうかをテストします。- パラメータ:
t1
- 1番目の型t2
- 2番目の型- 戻り値:
- 最初の型が2番目の型に代入可能である場合に限り
true
- 例外:
IllegalArgumentException
- 実行可能ファイル、パッケージ、またはモジュールの型が指定されている場合- Java™言語仕様:
- 5.2 代入変換
-
contains
boolean contains(TypeMirror t1, TypeMirror t2)
ある型引数を別の型に包含できるかどうかをテストします。- パラメータ:
t1
- 1番目の型t2
- 2番目の型- 戻り値:
- 先頭の型が2番目の型を包含している場合に限り
true
- 例外:
IllegalArgumentException
- 実行可能ファイル、パッケージ、またはモジュールの型が指定されている場合- Java™言語仕様:
- 4.5.1.1 型引数の包含と等価
-
isSubsignature
boolean isSubsignature(ExecutableType m1, ExecutableType m2)
あるメソッドのシグネチャが別のメソッドのサブシグネチャであるかどうかをテストします。- パラメータ:
m1
- 最初のメソッドm2
- 2番目のメソッド- 戻り値:
- 最初のシグネチャが2番目のシグネチャのサブシグネチャである場合に限り
true
- Java™言語仕様:
- 8.4.2 メソッドのシグネチャ
-
directSupertypes
List<? extends TypeMirror> directSupertypes(TypeMirror t)
型の直接のスーパー・タイプを返します。 インタフェース型が存在する場合、そのインタフェース型がリストの最後に現れます。 直接スーパー・インタフェースのないインタフェース型では、java.lang.Object
を表す型ミラーが返されます。- パラメータ:
t
- 調べる対象の型- 戻り値:
- 直接のスーパー・タイプ。存在しない場合は空のリスト
- 例外:
IllegalArgumentException
- 実行可能ファイル、パッケージ、またはモジュールの型が指定されている場合- Java™言語仕様:
- 4.10 サブタイプ
-
erasure
TypeMirror erasure(TypeMirror t)
型の消去を返します。- パラメータ:
t
- 消去される型- 戻り値:
- 指定された型の消去
- 例外:
IllegalArgumentException
- パッケージまたはモジュールの型が指定されている場合- Java™言語仕様:
- 4.6 型の消去
-
boxedClass
TypeElement boxedClass(PrimitiveType p)
指定されたプリミティブ型のボクシングされた値のクラスを返します。 つまり、ボクシング変換が適用されます。- パラメータ:
p
- 変換されるプリミティブ型- 戻り値:
- 型
p
のボクシングされた値のクラス - Java™言語仕様:
- 5.1.7 ボクシング変換
-
unboxedType
PrimitiveType unboxedType(TypeMirror t)
指定された型のアンボクシングされた値の型(プリミティブ型)を返します。 つまり、アンボクシング変換が適用されます。- パラメータ:
t
- アンボクシングされる型- 戻り値:
- 型
t
のアンボクシングされた値の型 - 例外:
IllegalArgumentException
- 指定された型がアンボクシング変換を持たない場合- Java™言語仕様:
- 5.1.8 アンボクシング変換
-
capture
TypeMirror capture(TypeMirror t)
型に取得変換を適用します。- パラメータ:
t
- 変換される型- 戻り値:
- 取得変換の適用結果
- 例外:
IllegalArgumentException
- 実行可能ファイル、パッケージ、またはモジュールの型が指定されている場合- Java™言語仕様:
- 5.1.10 取得変換
-
getPrimitiveType
PrimitiveType getPrimitiveType(TypeKind kind)
プリミティブ型を返します。- パラメータ:
kind
- 返すプリミティブ型の種類- 戻り値:
- プリミティブ型
- 例外:
IllegalArgumentException
-kind
がプリミティブ型でない場合
-
getNullType
NullType getNullType()
null型を返します。 これは、null
の型です。- 戻り値:
- null型
-
getNoType
NoType getNoType(TypeKind kind)
適切な実際の型が存在しない場合に使用される擬似型を返します。 返される型の種類は、VOID
とNONE
のいずれかです。パッケージまたはモジュールに対応する擬似型を取得するには、packageまたはmoduleをモデリングする要素で
asType()
を呼び出します。 名前は、それぞれ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境界(上限)。存在しない場合はnull
superBound
- super境界(下限)。存在しない場合はnull
- 戻り値:
- 新しいワイルドカード
- 例外:
IllegalArgumentException
- 境界が有効でない場合
-
getDeclaredType
DeclaredType getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)
型要素と実際の型引数に対応する型を返します。 たとえば、Set
の型要素とString
の型ミラーが指定されている場合、このメソッドを使用すると、パラメータ化された型Set<String>
を取得できます。型引数の数は、型要素の形式型パラメータの数に等しいか、ゼロである必要があります。 ゼロの場合および型要素がジェネリックの場合は、型要素の生の型が返されます。
パラメータ化された型が返される場合、型要素はジェネリック外部クラス内に含まれません。 たとえば、パラメータ化された型
Outer<String>.Inner<Number>
は、最初にこのメソッドを使用して型Outer<String>
を取得し、次にgetDeclaredType(DeclaredType, TypeElement, TypeMirror...)
を呼び出すことによって構築できます。- パラメータ:
typeElem
- 型要素typeArgs
- 実際の型引数- 戻り値:
- 型要素と実際の型引数に対応する型
- 例外:
IllegalArgumentException
- 指定された型引数が多すぎるか少なすぎる場合、あるいは不適切な型引数または型要素が提供された場合
-
getDeclaredType
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
- 指定された型引数が多すぎるか少なすぎる場合、あるいは不適切な型引数、型要素、または包含型が提供された場合
-
asMemberOf
TypeMirror asMemberOf(DeclaredType containing, Element element)
指定された型のメンバーとして要素が参照される場合、あるいは指定された型に直接包含されるメンバーとして要素が参照される場合、要素の型を返します。 たとえば、パラメータ化された型Set<String>
のメンバーとして参照される場合、Set.add
メソッドは型String
のパラメータを持つExecutableType
です。- パラメータ:
containing
- 包含型element
- 要素- 戻り値:
- 包含型から参照される要素の型
- 例外:
IllegalArgumentException
- 指定された型に対して要素が無効な場合
-
-