springMVC dao层中通过反射获取entityClass

来源:互联网 发布:破解 百度离线 知乎 编辑:程序博客网 时间:2024/06/10 17:30
public class BaseDaoImpl<T, PK extends java.io.Serializable> implements BaseDao<T, Serializable> {    // 泛型反射类    private Class<T> entityClass;    /**     * getClass().getGenericSuperclass()返回表示此 Class 所表示的实体    (类、接口、基本类型或 void)的直接超类的 Type然后将其转换ParameterizedType    getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组。    [0]就是这个数组中第一个了。。    简而言之就是通过反射获取子类确定的泛型类     * */     public BaseDaoImpl() {        Type genType = getClass().getGenericSuperclass();        Type[] params = ((ParameterizedType) genType).getActualTypeArguments();        entityClass = (Class) params[0];    }    /*     * 根据id获取PO     */    @Override    @SuppressWarnings("unchecked")    public T get(Serializable id) {        return (T) getSession().get(this.entityClass, id);    }
0 0
原创粉丝点击