java-泛型 擦除

擦除的核心动机是他使得泛化的客户端可以使用非泛化的类库用来使用,反之亦然,
因为java泛型不经支持向后兼容,并且现有的代码和类库也是合法的,保持其意义,要持之迁移兼容性,当某个类库变为泛型时,不会破坏依赖于他的代码,解决这个问题,java设计者利用了擦除。

在java泛型代码编译中,例如
ArrayList<Date> list=new ArrayList<Date>();
list.add(new Date());
Date myDate=list.get(0);
编译器在擦除之后get方法中并没有强转,get的依然是object类型,而是在最后的引用中强转。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 头次写博客,想说的东西不难,关于泛型的疑问,是前一阵在学习jackson中遇到的。 下面就把我所想到的、遇到的,分...
    贾博岩阅读 5,390评论 10 22
  • 参考 The Java™ Tutorialshttp://www.baeldung.com/java-type-e...
    xiaofudeng阅读 740评论 0 0
  • 记录一下今天在帮同事解决使用spring参数注入问题的时候由于对泛型的理解不到位而遇到的坑。 如下代码所示: 这段...
    进击的诺基亚阅读 1,025评论 0 1
  • 黑夜, 在黑夜里, 我生了一双翅膀, 飞呀,飞呀!飞进你的梦想。 你的梦里, 有一只浅黄色的蝴蝶,停在一朵黄花上,...
    阿木洛克人阅读 153评论 0 1
  • 星期一,一周的開始,兩天假期,好像忙碌的來,有些不同的意義,早上醒來後,很精神,感恩! 早上回到公司,打開郵件,開...
    芯之陽阅读 114评论 0 1