java Class 的getSuperclass() 和getGenericSuperclass()区别
getSuperclass()
返回直接继承的父类(由于编译擦除,没有显示泛型参数)
getGenericSuperclass()
返回直接继承的父类(包含泛型参数)
实验代码:
public class Main {
public static void main(String[] args) {
// write your code here
System.out.println(Person.class.getGenericSuperclass());
System.out.println(Person.class.getSuperclass());
}
public class Person extends BasePerson<Integer> {
private String name;
}
public class BasePerson<T>{
private T age;
}
}
打印结果:
com.soul.Main$BasePerson<java.lang.Integer>
class com.soul.Main$BasePerson
Process finished with exit code 0
如图:
主要区别就是带不带泛型参数。