黑马程序员技术交流社区

标题: 泛型编译之后不是擦除了类型信息了吗?? [打印本页]

作者: 朱冰18189949658    时间: 2014-8-17 11:29
标题: 泛型编译之后不是擦除了类型信息了吗??
  1. {
  2. Method applyMethod = GenericTest.class.getMethod("applyVector", Vector.class);
  3.                 //class类实现了Type接口
  4.                 Type[] types = applyMethod.getGenericParameterTypes();
  5.                 //ParameterizedType参数化的类型
  6.                 ParameterizedType pType = (ParameterizedType)types[0];
  7.                 //pType.getRawType()得到原始类型
  8.                 System.out.println(pType.getRawType());
  9.                 //pType.getActualTypeArguments()[0]得到第一个实际参数类型
  10.                 System.out.println(pType.getActualTypeArguments()[0]);
  11.         }
  12.         public static void applyVector(Vector<Date> v1)
  13.         {
  14.                
  15.         }
复制代码

为什么把这个泛型交给一个方法使用后,通过这个方法可以知道泛型的类型??
作者: justin1258    时间: 2014-8-17 14:52
是擦除了,但是还是留下了“痕迹”,建议楼主自己写个泛型方法或泛型类,看看编译后的class文件,和普通定义有什么区别。。。




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