为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Java泛型不支持原语类型?

为什么Java泛型不支持原语类型?

德玛西亚99 2019-06-05 13:24:02
为什么Java泛型不支持原语类型?为什么Java中的泛型使用类而不是原始类型?例如,这很好:List<Integer> foo = new ArrayList<Integer>();但这是不允许的:List<int> bar = new ArrayList<int>();
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

Java中的泛型是一个完整的编译时构造-编译器将所有一般用途转换为正确的类型。这是为了与以前的JVM运行时保持向后兼容性。

这是:

List<ClassA> list = new ArrayList<ClassA>();list.add(new ClassA());ClassA a = list.get(0);

转换为(大致):

List list = new ArrayList();list.add(new ClassA());ClassA a = (ClassA)list.get(0);

因此,任何用作泛型的东西都必须可转换为对象(在本例中)。get(0)返回Object),而原始类型则不是。所以它们不能用于仿制药。


查看完整回答
反对 回复 2019-06-05
?
12345678_0001

TA贡献1802条经验 获得超5个赞

集合定义为需要从java.lang.Object..基本类型根本不这样做。


查看完整回答
反对 回复 2019-06-05
  • 3 回答
  • 0 关注
  • 523 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号