gpt4 book ai didi

java - Arrays.asList() 不能正常工作?

转载 作者:IT老高 更新时间:2023-10-28 20:31:58 24 4
gpt4 key购买 nike

我有一个 float[],我想获得一个包含相同元素的列表。我可以做一件丑陋的事情,将它们一一添加,但我想使用 Arrays.asList 方法。不过有一个问题。这有效:

List<Integer> list = Arrays.asList(1,2,3,4,5);

但事实并非如此。

int[] ints = new int[] {1,2,3,4,5};
List<Integer> list = Arrays.asList(ints);

asList 方法接受一个 varargs 参数,据我所知,该参数是数组的“速记”。

问题:

  • 为什么第二段代码返回List<int[]>但不是 List<int> .

  • 有办法改正吗?

  • 为什么自动装箱在这里不起作用;即int[]Integer[] ?

最佳答案

没有 List<int> 这样的东西在 Java 中 - 泛型不支持原语。

自动装箱只发生在单个元素上,而不是 数组 的基元。

至于如何纠正它 - 有各种各样的库有大量的方法来做这样的事情。没有办法解决这个问题,而且我认为在 JDK 中没有任何东西可以让它变得更容易。有些会在包装类型列表中包装一个原始数组(以便在访问时发生装箱),其他人将遍历原始数组以创建一个独立的副本,并在进行时装箱。确保你知道你在使用哪个。

(编辑:我一直假设 int[] 的起点是不可协商的。如果您可以从 Integer[] 开始,那么您就很远了 :)

仅举一个帮助程序库的示例,并插入 Guava有点,有 com.google.common.primitive.Ints.asList .

关于java - Arrays.asList() 不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1467913/

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