确定方法返回位置为泛型的类型

对于返回值是 泛型的方法,如何确定 泛型的返回值

1.先声明一个 用于接收运行时期的类对象

private Class clazz;

2.在空参构造里,通过反射方式方式获取运行时泛型类对象的类型

public BaseDaoImpl(){
        //获得当前类型的带有泛型类型的父类
        ParameterizedType ptClass=(ParameterizedType) this.getClass().getGenericSuperclass();
     //获得运行期泛型的类型 clazz
=(Class)ptClass.getActualTypeArguments()[0]; }

3.将泛型类对象 作为参数传给方法即确定了 泛型返回值的类型

public T getById(Serializable id) {
        return (T) getHibernateTemplate().get(clazz, id);
    }

猜你喜欢

转载自www.cnblogs.com/benjamin77/p/9350507.html