黑马程序员技术交流社区

标题: 关于泛型的高级应用 [打印本页]

作者: 王志明    时间: 2012-7-24 19:44
标题: 关于泛型的高级应用
本帖最后由 Mrng8888 于 2012-7-25 00:33 编辑
  1. //终于想明白了
  2. public abstract class ABaseDaoImpl<T> {
  3.                 protected Class<T> clazz;

  4.                 public ABaseDaoImpl() {
  5.                         // 1.得到父类类型(相对于ABaseDaoImpl的子类来说,因为子类构建实例时借助父类构造器)
  6.                         Type type = this.getClass().getGenericSuperclass();
  7.                         //2.返回表示此类型实际类型参数的 Type 对象的数组
  8.                         Type[] at = ((ParameterizedType) type).getActualTypeArguments();
  9.                         //得到泛型参数
  10.                         clazz = (Class) at[0];

  11.                         System.out.println("clazz = " + clazz);
  12.                         //结果为:clazz = class test1.Test5$Student               }
  13.         }

  14.         public class BaseDaoImpl extends ABaseDaoImpl<Student> {

  15.         }

  16.         public class Student {

  17.         }

  18.         public class Test {
  19.                 public static void main(String[] args) {
  20.                         new BaseDaoImpl();
  21.                 }
  22.         }
复制代码

作者: 王志明    时间: 2012-7-24 23:21
没人回答么?
作者: 王志明    时间: 2012-7-24 23:48
?????????????




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2