getGenericSuperclass和getSuperclass的异同

getGenericSuperclassgetSuperclass异同

相同之处:都是由子类获取父类的“全路径名”

不同指出: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 }

测试结果:

 

posted @ 2018-03-25 09:22  夕阳游子  阅读(193)  评论(0编辑  收藏  举报