黑马程序员技术交流社区

标题: 泛型原理中对"擦除"的小疑问 [打印本页]

作者: 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