1、Typevariable类图
2、类签名
public interface TypeVariable<D extends GenericDeclaration> extends Type, AnnotatedElement {
3、涉及到的类
3.1 Type
public interface Type {
// 获取类型名称
default String getTypeName() {
return toString();
}
}
3.2 GenericDeclaration
public interface GenericDeclaration extends AnnotatedElement {
// 以数组的方式返回按照泛型声明顺序的类型变量
public TypeVariable<?>[] getTypeParameters();
}
Demo
public class TestA<T extends People, B, A> {
public static void main(String[] args) {
Class<TestA> aClass = TestA.class;
TypeVariable<Class<TestA>>[] typeParameters = aClass.getTypeParameters();
// 获取泛型生命中的类型变量(占位符的形式,不是实际的类型)
for (TypeVariable<Class<TestA>> typeParameter : typeParameters) {
System.out.println(typeParameter.getTypeName());
}
}
}
Class类类图
3.3 AnnotatedType
public interface AnnotatedType extends AnnotatedElement {
// 获取标注元素类型
public Type getType();
}
4、Typevariable接口中的方法
// 获取边界
Type[] getBounds();
// 获取声明
D getGenericDeclaration();
// 变量名称
String getName();
// 获取标注元素的边界
AnnotatedType[] getAnnotatedBounds();