Module java.base

Interface 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个封闭类(参见JVMS 5),其中i从0到n,包括n。创建类型变量不得导致其边界的创建。重复创建类型变量没有任何效果。

可以在运行时实例化多个对象来表示给定类型变量。尽管类型变量只创建一次,但这并不意味着必须缓存表示类型变量的实例。然而,表示类型变量的所有实例必须彼此相等。因此,类型变量的用户不得依赖实现此接口的类的实例的标识。

参见 Java语言规范:
4.4 类型变量
自版本:
1.5
  • Method Details

    • getBounds

      Type[] getBounds()
      返回表示此类型变量上界的Type对象数组。如果未明确声明上界,则上界为Object

      对于每个上界B:

      • 如果B是参数化类型或类型变量,则会创建它(有关参数化类型创建过程的详细信息,请参见ParameterizedType)。
      • 否则,将解析B。
      返回:
      表示此类型变量上界的Type数组
      抛出:
      TypeNotPresentException - 如果任何边界引用不存在的类型声明
      MalformedParameterizedTypeException - 如果任何边界引用由于任何原因无法实例化的参数化类型
    • getGenericDeclaration

      D getGenericDeclaration()
      返回表示为此类型变量声明的通用声明的GenericDeclaration对象。
      返回:
      此类型变量声明的通用声明。
      自版本:
      1.5
    • getName

      String getName()
      返回此类型变量在源代码中出现的名称。
      返回:
      此类型变量在源代码中出现的名称
    • getAnnotatedBounds

      AnnotatedType[] getAnnotatedBounds()
      返回表示用于表示此TypeVariable所代表的类型参数的上界的AnnotatedType对象数组。数组中对象的顺序对应于类型参数声明中边界的顺序。请注意,如果未明确声明上界,则上界为未注释的Object
      返回:
      表示类型变量上界的对象数组
      自版本:
      1.8