• 使用Guava获取某一个类的指定超类上的泛型Type T


    package com.geostar.gfstack.operationcenter.log.common.hibernate;
    
    import com.geostar.gfstack.operationcenter.common.page.Page;
    import com.geostar.gfstack.operationcenter.common.util.DBType;
    import com.geostar.gfstack.operationcenter.common.util.StringUtil;
    import com.google.common.reflect.TypeToken;
    import org.apache.commons.collections.CollectionUtils;
    import org.hibernate.Query;
    import org.hibernate.SQLQuery;
    import org.hibernate.SessionFactory;
    
    import java.io.Serializable;
    import java.lang.reflect.ParameterizedType;
    import java.math.BigInteger;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    public abstract class MergeDao<T, ID extends Serializable> extends BaseDao<T, ID> {
    
        private Class<T> clazz;
    
    ......
    
        /**
         * 获取Model类型供hibernate实例化对象使用
         *
         * @return
         */
        public Class<T> getModelClass() {
            if (clazz == null) {
                TypeToken tt = TypeToken.of(this.getClass());
                TypeToken st = tt.getSupertype(MergeDao.class);
                clazz = (Class<T>) ((ParameterizedType) st.getType()).getActualTypeArguments()[0];
            }
            return clazz;
        }
    
    ......
    
    }
    

      

  • 相关阅读:
    使用phpize安装php模块
    centos如何卸载软件
    修改centos环境变量
    linux系统安装php扩展
    php单入口session处理
    session阻塞机制,解决方法
    uploadify插件的使用
    php图片上传代码
    validate插件的使用
    datepicker使用
  • 原文地址:https://www.cnblogs.com/nihaorz/p/7595696.html
Copyright © 2020-2023  润新知