java Class 的getSuperclass() 和getGenericSuperclass()区别

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

如图:
在这里插入图片描述
主要区别就是带不带泛型参数。


版权声明:本文为qq_22671411原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。