0

我试图定义一个 int 类型的通用 LinkedList 但它给我一个编译错误

List<int> I = new LinkedList<int>();
4

3 回答 3

3

你必须使用包装类来做到这一点。

  List<Integer> I = new LinkedList<Integer>();

您可以在此链接列表中插入一个int,因为自动装箱会自动从中创建一个Integer对象int并将其添加到 LinkedList。

于 2013-10-10T02:22:29.683 回答
1

您不能将原始类型用作泛型类型。如果您真的想这样做,那就是包装类(Integer,Float等)的用途。你可以这样做:

List<Integer> I = new LinkedList<Integer>();

int由于自动装箱,您仍然可以将s 放入列表中。如果您尝试在需要aint的情况下使用IntegerInteger使用 ,则会自动创建Integer.valueOf的并改为使用。

此外,在 Java 7 中,您可以使用菱形运算符并使用以下代码:

List<Integer> I = new LinkedList<>();

这样做没有任何好处,只是打字速度更快。

于 2013-10-10T02:23:25.820 回答
1

这是 Java 具有原始包装类的原因之一,因为您不能使用原始包装类作为类型参数。在您的情况下,您需要Integer

List<Integer> I = new LinkedList<Integer>();

在 Java 7+ 中,您不需要重申类型参数:

List<Integer> I = new LinkedList<>();

另请参阅:泛型

于 2013-10-10T02:23:27.357 回答