黑马程序员技术交流社区
标题:
关于泛型的高级应用
[打印本页]
作者:
王志明
时间:
2012-7-24 19:44
标题:
关于泛型的高级应用
本帖最后由 Mrng8888 于 2012-7-25 00:33 编辑
//终于想明白了
public abstract class ABaseDaoImpl<T> {
protected Class<T> clazz;
public ABaseDaoImpl() {
// 1.得到父类类型(相对于ABaseDaoImpl的子类来说,因为子类构建实例时借助父类构造器)
Type type = this.getClass().getGenericSuperclass();
//2.返回表示此类型实际类型参数的 Type 对象的数组
Type[] at = ((ParameterizedType) type).getActualTypeArguments();
//得到泛型参数
clazz = (Class) at[0];
System.out.println("clazz = " + clazz);
//结果为:clazz = class test1.Test5$Student }
}
public class BaseDaoImpl extends ABaseDaoImpl<Student> {
}
public class Student {
}
public class Test {
public static void main(String[] args) {
new BaseDaoImpl();
}
}
复制代码
作者:
王志明
时间:
2012-7-24 23:21
没人回答么?
作者:
王志明
时间:
2012-7-24 23:48
?????????????
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2