getGenericSuperclass和getSuperclass的异同
相同之处:都是由子类获取父类的“全路径名”
不同指出:getSuperclass只获取父类的全路径名,不获取父类上的泛型类全路径名。
getGenericSuperclass获取父类的全路径名,以及父类上的泛型类全路径名。
测试代码如下:
1 public class TestDemo { 2 public static void main(String[] args) { 3 UserDao userDao = new UserDao(); 4 System.out.println("getSuperclass():"+userDao.getClass().getSuperclass()); 5 System.out.println("getGenericSuperclass():"+userDao.getClass().getGenericSuperclass()); 6 } 7 } 8 class UserDao extends Dao<Book> { 9 public UserDao() { 10 System.out.println("bookDao:" + this); 11 } 12 } 13 class Dao<T> { 14 public Dao() { 15 System.out.println("Dao " + this); 16 } 17 } 18 class Book { 19 }
测试结果: