泛型模版类
public class DaoBase<T> {
//add,update,delete method
}
public class DaoBase<T> {
protected List<T> executeTrans(String sql) {
}
}
public class BrokeDAOImpl extends DaoBase<Broke> implements BrokeDAO
如何在DaoBase中获得泛型<T>的T对象
/**
* 取得子类中定义泛型的具体类型
* @return
*/
private Class<T> getDetailClass() {
Class<T> en;
Class c = getClass();
ParameterizedType ptype = null;
do { // 遍历所有超类,直到找泛型定义
try {
ptype = (ParameterizedType) c.getGenericSuperclass();
} catch (Exception e) {
}
c = c.getSuperclass();
} while (ptype == null && c != null);
if (ptype == null) {
System.out.println("子类中没有定义泛型的具体类型");
}
en = (Class<T>) ptype.getActualTypeArguments()[0];
// System.out.println(en.getSimpleName());
return en;
}