zoukankan      html  css  js  c++  java
  • 获取泛型对象


    import java.io.Serializable;
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    import java.util.List;

    import javax.annotation.Resource;

    import org.hibernate.Query;
    import org.hibernate.SessionFactory;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    import org.springframework.stereotype.Repository;

    import com.fengyi.dao.IBaseDao;
    import com.fengyi.util.PageUtil;

    @Repository(value="baseDao")
    @SuppressWarnings("unchecked")
    public class BaseDao<T> extends HibernateDaoSupport implements IBaseDao<T> {

     private Class<T> clzz;

     @Resource(name = "sessionFactory")
     public void setSuperSessionFactory(SessionFactory sessionFactory) {
      super.setSessionFactory(sessionFactory);
     }

     // 獲取泛型的Class對象
     private Class<T> getClzz() {
      clzz = (Class<T>) getClass(); 
      while (clzz != null && clzz != Object.class) {
       Type t = clzz.getGenericSuperclass();
       if (t instanceof ParameterizedType) {
        Type[] args = ((ParameterizedType) t).getActualTypeArguments();
        if (args[0] instanceof Class) {
         this.clzz = (Class<T>) args[0];
         break;
        }
       }
       clzz = (Class<T>) clzz.getSuperclass();
      }
      return clzz;
     }

    }
     ..........

    每一天的成长!
  • 相关阅读:
    常用Linux命令总结
    mysql基础归纳
    第一次使用Ubuntu20.04系统-遇坑小记
    Linux操作系统常用命令
    单例模式
    MVC设计模式
    SpringMVC体系结构简要描述
    报错:数据库连接问题
    数据库增删改查语句
    JDBC关键步骤(简化版)
  • 原文地址:https://www.cnblogs.com/javafengyi/p/2882251.html
Copyright © 2011-2022 走看看