本帖最后由 段光宇 于 2014-2-7 15:07 编辑
举个例子吧,例如有一个Arraylist集合,你对它限制一个整数型泛型,就只能向其添加整数型的值,因为编译器在编译时会检查,这是都知道的
可是Arraylist集合中的元素本来是支持存入很多类型的,如果编译器不对泛型进行擦除的话,虚拟机内部就一定要增加方法去判断这个字节码文件中的Arraylist集合上的泛型,非常麻烦,升级虚拟机时还要考虑这个方法要不要升级,要不要重写,而且虚拟机的发展方向都是小型化的。
所以目前编译器对泛型进行擦除是必要的减小虚拟机的压力,将类型判断这个事情交给编译器自身做就可以了。
|