Module  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的创建需要分辨率(参见JVMS 5),对于i = 0到n,包括第i个包围类别。 创建类型变量不能导致创建其边界。 重复创建类型变量没有任何效果。

    可以在运行时实例化多个对象来表示给定的类型变量。 即使只创建一个类型变量一次,这并不意味着缓存表示类型变量的实例的任何要求。 但是,表示类型变量的所有实例必须彼此相等()。 因此,类型变量的用户不能依赖于实现此接口的类的实例的身份。

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

      • getBounds

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

        对于每个上限B:

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

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

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

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