A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王志明 中级黑马   /  2012-7-24 19:44  /  1310 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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.         }
复制代码

2 个回复

倒序浏览
没人回答么?
回复 使用道具 举报
?????????????
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马