Arrays.asList() 难题:了解其局限性
在 Java 中,Arrays.asList 方法提供了一种转换数组的便捷方法到一个列表中。但是,在处理原始数组(例如 float[])时,我们会遇到异常。
此代码片段按预期工作,创建了一个 Integer 对象列表:
List<Integer> list = Arrays.asList(1,2,3,4,5);
在另一方面,以下代码无法创建 List
int[] ints = new int[] {1,2,3,4,5}; List<Integer> list = Arrays.asList(ints);
相反,输出是List
Arrays.asList 接受一个 varargs 参数,它是数组的语法简写。但是,在基元的情况下,它将整个数组视为单个元素,而不是每个基元值。这会产生一个包含基元数组的 List,而不是包装为对象的单个基元值。
不幸的是,没有直接的方法将 int[] 转换为 List
自动装箱通常会转换基元到其相应的包装对象中以在对象集合中使用。但是,当应用于基元数组时,它不会按元素发生。此限制源于 Java 不支持数组自动装箱这一事实。
以上是为什么 Java 中的 Arrays.asList() 不自动装箱原始数组?的详细内容。更多信息请关注PHP中文网其他相关文章!