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