最近学习到AbstractDao
import java.io.Serializable;
public class Person<ID extends Serializable,T> {
}
这里是实现类
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class Student extends Person<Integer,Student> {
public static void main(String[] args) {
Student student=new Student();
Class clazz=student.getClass();
//getSuperClass() 获得该类的父类 即Person
System.out.println(clazz.getSuperclass());
//getGenericSuperclass()获得带有类型的父类 即Person<Integer,Student>
//Type是Java编程语言中所有类型的公共高级接口,它们包括原始类型,参数化类型,数组类型,类型变量和基本类型
Type type=clazz.getGenericSuperclass();
System.out.println(type);
//ParameterizedType参数化类型,即泛型
//Person<java.lang.Integer, Student>
ParameterizedType parameterizedType=(ParameterizedType)type;
//getActualTypeArguments获取参数化类型的数组,泛型有两个,获取第二位
Class class1=(Class) parameterizedType.getActualTypeArguments()[1];
System.out.println(class1);
}
/**
* 打印结果:
class Person
Person<java.lang.Integer, Student>
class Student
*/
}