モジュール java.base
パッケージ java.lang.reflect

インタフェースTypeVariable<D extends GenericDeclaration>

型パラメータ:
D - 基になる型変数を宣言したジェネリック宣言の型。
すべてのスーパー・インタフェース:
AnnotatedElement, Type

public interface TypeVariable<D extends GenericDeclaration> extends Type, AnnotatedElement
TypeVariableは、型変数の種類の共通のスーパー・インタフェースです。 型変数は、このパッケージで指定されているように、リフレクト・メソッドにより必要とされるときにはじめて作成されます。 型変数tが型(つまり、クラス、インタフェース、あるいは注釈型) Tにより参照される場合、TはTを囲むn番目のクラスにより宣言されます(JLS 8.1.2を参照)。次に、tの作成にはTを囲むi番目のクラス(for i = 0 to n)の解決(JVMS 5を参照)を必要とします。 型変数の作成で、その境界の作成が発生してはいけません。 型変数の作成を繰り返してもなんら効果はありません。

実行時に複数のオブジェクトをインスタンス化し、指定された型変数を表すことができます。 型変数が一度だけ作成された場合でも、型変数を表すインスタンスをキャッシュする要求を意味しているわけではありません。 ただし、型変数を表すすべてのインスタンスは相互に同等(equal())である必要があります。 したがって、型変数のユーザーはこのインタフェースを実装しているクラスのインスタンスのアイデンティティに依存してはいけません。

Java言語仕様を参照してください:
4.4 型変数
導入されたバージョン:
1.5
  • メソッドの詳細

    • getBounds

      Type[] getBounds()
      この型変数の上限を表すTypeオブジェクトの配列を返します。 上限が明示的に宣言されていない場合、上限はObjectです。

      各上限Bについて、

      • Bがパラメータ化された型または型変数の場合、Bは作成されます(パラメータ化された型の作成処理の詳細については、ParameterizedTypeを参照)。
      • そうでない場合、Bは解決されます。

      戻り値:
      この型変数の上限を表すTypeの配列
      例外:
      TypeNotPresentException - 境界のいずれかが、存在しない型宣言を参照する場合
      MalformedParameterizedTypeException - 境界のいずれかが、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合
    • getGenericDeclaration

      D getGenericDeclaration()
      この型変数に宣言された汎用宣言を表すGenericDeclarationオブジェクトを返します。
      戻り値:
      この型変数を宣言したジェネリック宣言
      導入されたバージョン:
      1.5
    • getName

      String getName()
      ソース・コードで発生したとおりのこの型変数の名前を返します。
      戻り値:
      ソース・コードで出現したとおりのこの型変数の名前
    • getAnnotatedBounds

      AnnotatedType[] getAnnotatedBounds()
      TypeVariableによって表される型パラメータの上限を示す型の使用を表すAnnotatedTypeオブジェクトの配列を返します。 配列内のオブジェクトの順序は、型パラメータの宣言における境界の順序に一致します。 上限が明示的に宣言されていない場合、上限にはObjectの名前が付けられません。
      戻り値:
      型変数の上限を表すオブジェクトの配列
      導入されたバージョン:
      1.8