模块  java.base
软件包  java.lang.reflect

Interface TypeVariable<D extends GenericDeclaration>

  • 参数类型
    D - 声明基础类型变量的泛型声明的类型。
    All Superinterfaces:
    AnnotatedElementType

    public interface TypeVariable<D extends GenericDeclaration>extends Type, AnnotatedElement
    TypeVariable是类型变量的通用超接口。 类型变量在第一次被反射方法需要时创建,如此包中指定的那样。 如果类型变量t由类型(即类,接口或注释类型)T引用,并且T由第n个封闭类T(参见JLS 8.1.2)声明,则t的创建需要分辨率(参见第i个封闭类T的JVMS 5),其中i = 0到n,包括0和n。 创建类型变量不得导致其边界的创建。 重复创建类型变量无效。

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

    从以下版本开始:
    1.5
    • 方法详细信息

      • getBounds

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

        对于每个上限B:

        • 如果B是参数化类型或类型变量,则创建它(有关参数化类型的创建过程的详细信息,请参阅ParameterizedType )。
        • 否则,B被解决。
        结果
        Type的数组,表示此类型变量的上限
        异常
        TypeNotPresentException - 如果任何边界引用了不存在的类型声明
        MalformedParameterizedTypeException - 如果任何边界引用无法以任何原因实例化的参数化类型
      • getGenericDeclaration

        D getGenericDeclaration()
        返回表示声明此类型变量的泛型声明的 GenericDeclaration对象。
        结果
        为此类型变量声明的泛型声明。
        从以下版本开始:
        1.5
      • getName

        String getName()
        返回此类型变量的名称,因为它出现在源代码中。
        结果
        此类型变量的名称,如源代码中所示
      • getAnnotatedBounds

        AnnotatedType[] getAnnotatedBounds()
        返回AnnotatedType对象的数组,这些对象表示使用类型来表示此TypeVariable表示的类型参数的上限。 数组中对象的顺序对应于type参数声明中的边界顺序。 请注意,如果未显式声明上限,则上限未注释Object
        结果
        表示类型变量上限的对象数组
        从以下版本开始:
        1.8