gpt4 book ai didi

java - Java 泛型与 C++ 模板有何不同?为什么我不能使用 int 作为参数?

转载 作者:IT老高 更新时间:2023-10-28 14:00:26 25 4
gpt4 key购买 nike

我正在尝试创建

ArrayList<int> myList = new ArrayList<int>();

在 Java 中,但这不起作用。

谁能解释一下为什么 int 作为类型参数不起作用?
int 原语使用 Integer 类有效,但有人可以解释为什么不接受 int 吗?

Java 1.6 版

最佳答案

Java 泛型与 C++ 模板如此不同,因此我不打算在此处列出它们的区别。 (详情请参阅 What are the differences between “generic” types in C++ and Java?。)

在这种特殊情况下,问题在于您不能将基元用作泛型类型参数(参见 JLS §4.5.1:“类型参数可以是引用类型或通配符。”)。

但是,由于自动装箱,您可以执行以下操作:

List<Integer> ints = new ArrayList<Integer>();
ints.add(3); // 3 is autoboxed into Integer.valueOf(3)

这样可以消除一些痛苦。不过,这肯定会损害运行时效率。

关于java - Java 泛型与 C++ 模板有何不同?为什么我不能使用 int 作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/996135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com