通过反射获取泛型的实际类型

矫情吗;* 2022-08-24 02:00 273阅读 0赞
  1. import java.io.Serializable;
  2. import java.lang.reflect.ParameterizedType;
  3. import org.hibernate.Session;
  4. import cn.itcast.domain.Category;
  5. //T extends Serializable & Cloneable 限定处理的类型
  6. public class BaseDao<T extends Serializable & Cloneable> {
  7. private Session session;
  8. private Class clazz;
  9. public BaseDao(){
  10. ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();//BaseDao<Category>
  11. clazz = (Class) pt.getActualTypeArguments()[0]; //获取参数化后的实际类型
  12. }
  13. public void add(T t){
  14. session.save(t);
  15. }
  16. public T find(String id){
  17. return (T) session.get(clazz,id);
  18. }
  19. public void update(T t){
  20. session.update(t);
  21. }
  22. public void delete(String id){
  23. T t = (T) session.get(clazz,id);
  24. session.delete(t);
  25. }
  26. }

发表评论

表情:
评论列表 (有 0 条评论,273人围观)

还没有评论,来说两句吧...

相关阅读