对于返回值是 泛型的方法,如何确定 泛型的返回值
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); }