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