getSuperclass()是返回父类的class  getGenericSuperclass()是返回父类包括泛型的class

例如:User类作为泛型参数传入

package com.annotation.test;

public class User {

    private Integer id;  
    private String name;  
    public Integer getId() {  
        return id;  
    }  
    public void setId(Integer id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
}

 父类使用泛型

package com.annotation.test;

import java.io.Serializable;
public class BaseHibernateDao<T,ID extends Serializable> {  

}  

  

测试类

package com.annotation.test;

public class UserService extends BaseHibernateDao<User, Integer> {
	public static void main(String[] args) {
		UserService s = new UserService();
		System.out.println(s.test1());
		System.out.println(s.test2());
	}
	String test1() {
		return this.getClass().getGenericSuperclass() + "";
	}

	String test2() {

		return this.getClass().getSuperclass() + "";
	}
}

 打印结果 

com.annotation.test.BaseHibernateDao<com.annotation.test.User, java.lang.Integer>
class com.annotation.test.BaseHibernateDao