モジュール java.compiler
パッケージ javax.lang.model.util

インタフェースの型


  • public interface Types
    型で操作を行うためのユーティリティ・メソッドです。

    互換性に関するノート: プラットフォームの将来のリリースでは、このインタフェースにメソッドが追加される可能性があります。

    導入されたバージョン:
    1.6
    関連項目:
    ProcessingEnvironment.getTypeUtils()
    • メソッドの詳細

      • asElement

        Element asElement​(TypeMirror t)
        型に対応する要素を返します。 型はDeclaredTypeTypeVariableのいずれかです。 型が対応する要素を持たない場合は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)
        適切な実際の型が存在しない場合に使用される擬似型を返します。 返される型の種類は、VOIDNONEのいずれかです。

        パッケージまたはモジュールに対応する擬似型を取得するには、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 - 指定された型に対して要素が無効な場合