Java中与泛型相关的接口 之 GenericDeclaration
2022-12-06 12:55:33
michael007js
178
简介
GenericDeclaration接口继承了AnnotatedElement接口,是所有“可以声明(定义)范型变量”的实体(如Class,Constructor,Method)的公共接口。也就是说只有实现了这个接口的才能在对应“实体”上声明“范型变量”。所谓范型变量就是<E extends List>或者<E>, 也就是TypeVariable<D extends GenericDeclaration>这个接口对应的对象,TypeVariable<D extends GenericDeclaration>中的D是继承自 GenericDeclaration的,用来通过范型变量(TypeVariable)反向获取拥有这个变量的GenericDeclaration。
目前实现GenericDeclaration接口的类包括Class(类), Method(方法), Constructor(构造器),也就是说只能在这几种对象上进行范型变量的声明(定义)。GenericDeclaration的直接实现子类没有Field类,所以属性上面不能定义类型变量。GenericDeclaration的接口方法getTypeParameters用来逐个获取该GenericDeclaration的“范型变量”声明。
TypeVariable<?>[] getTypeParameters()
获取当前“实体”上声明的“泛型变量"。
按被声明的顺序返回一个TypeVariable对象的数组,其中TypeVariable对象是由GenericDeclaration对象进行声明的。如果底层没有使用GenericDeclaration声明“范型变量”,那么返回一个长度为0的数组。
下面是一个例子: