黑马程序员技术交流社区
标题:
泛型原理中对"擦除"的小疑问
[打印本页]
作者:
linjl_ll
时间:
2013-10-26 20:04
标题:
泛型原理中对"擦除"的小疑问
本帖最后由 linjl_ll 于 2013-10-27 09:12 编辑
张老师的基础加强视频中讲到泛型是编译时技术,生成的字节码会把泛型的信息擦除。但是看到后面有这么一段代码,具体功能是获取泛型的实际参数类型,在运行过程中获取了参数类型,这说明在运行时也能获取泛型的信息,这和泛型擦除是否矛盾?是否可以理解为在大部分的情况下泛型的信息都会被擦除,在一些特殊的情况下保留了泛型的信息?代码如下:
/获取泛型的实际类型
public static String showGType (Vector<Date> hello)throws Exception{
Method m = TemplateTest1.class.getMethod("showGType", Vector.class);
ParameterizedType type= (ParameterizedType)m.getGenericParameterTypes()[0];
System.out.println(type.getActualTypeArguments()[0]);
return null;
}
作者:
陶智第
时间:
2013-10-26 20:19
我认为是任何情况下都“擦除”了泛型
只不过是任何情况下都需要知道参数的类型
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2