本帖最后由 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;
}
|