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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linjl_ll 中级黑马   /  2013-10-26 20:04  /  982 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

1 个回复

倒序浏览
我认为是任何情况下都“擦除”了泛型
只不过是任何情况下都需要知道参数的类型
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马