最近学习到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
*/
}
本文通过一个具体的Java泛型示例,详细解析了如何使用getGenericSuperclass()和getActualTypeArguments()等方法来获取父类的泛型类型。通过实际代码展示了如何获取并打印出泛型的具体类型。
716

被折叠的 条评论
为什么被折叠?



