如何通过不允许java中的泛型原语来维护向后兼容性

 fuck__镇豪_152 发布于 2023-02-13 18:04

我知道Java不允许在泛型中使用原始数据类型,即

List l  = new List();

不被允许.

我已阅读一篇相关文章,其中指出这是为了向后兼容.任何人都可以解释如何不允许在泛型中使用原语保持向后兼容性?我非常感谢一个例子的小解释.

一个子问题:在java中如何实现泛型的主要/次要缺点是什么.

非常感谢您的回复.

1 个回答
  • 正如这里所解释的(带有示例),Java中的泛型仅在编译时存在.在引擎盖下,泛型集合实际上是非泛型集合,其所有内容都存储为Object.在pre-generics时代(Java 5之前的版本),集合不能包含原语,因为它们无法下载Object,而它们仍然不能.

    回答你的问题:允许泛型集合存储基元不会是一个重大变化,因为先前的泛型集合不存在,因此原始决策与向后兼容性无关.如果他们决定在C#中实现泛型,那么将存在原始泛型集合类型,并且它不会改变先前程序的行为.

    但是,为什么他们以这种方式实现泛型的原因可能与这种低能耗方法有关:他们几乎不必为集合添加任何代码来支持这个功能,他们没有必要改变JVM.这提高了可维护性.这听起来不是什么原因,但如果您希望每个未来的JVM能够在结束时仍能执行Java 1.0代码,那么它实际上可能非常重要.

    2023-02-13 18:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有