黑马程序员技术交流社区

标题: 如何证明泛型擦除 [打印本页]

作者: linjl_ll    时间: 2013-11-14 13:59
标题: 如何证明泛型擦除
本帖最后由 linjl_ll 于 2013-11-14 21:08 编辑

我们知道泛型是编译时技术,编译之后的字节码是没有泛型信息的。那么如何使用代码证明这一点呢?是否可以使用反射来证明?



作者: 秦桂胜    时间: 2013-11-14 19:45
可以用反射来证明
ArrayList<Integer> collection3 = new ArrayList<Integer>();
collection3.getClass().getMethod("add", Object.class).invoke(collection3, "abc");
都可以编译通过,并添加成功
作者: 七道    时间: 2013-11-14 20:24
  1. ArrayList<String> al1=new ArrayList<String>();
  2.         ArrayList<Integer> al2=new ArrayList<Integer>();
  3.         System.out.println(al1.getClass()==al2.getClass());//看它们两的字节码是一样的
复制代码

作者: linjl_ll    时间: 2013-11-14 21:08
逛论坛发现这个问题,后来我感觉就可以说明泛型擦除
http://bbs.itheima.com/thread-99639-1-1.html




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