【发布时间】:2018-06-20 17:53:51
【问题描述】:
Java 编译器负责转换原始数据类型及其包装类。但我的疑问是,尽管 Java 编译器自己执行类型转换,但为什么当我尝试将 Array 转换为 ArrayList 时它会打印错误以 int 数组为参数..Like:
int[] val = {1,2,3,4,5};
ArrayList<Integer> newval = new ArrayList<Integer>(Arrays.asList(val));
错误:找不到适合
ArrayList(List<int[]>)的构造函数
为什么编译器不将 int 转换为 Integer?
【问题讨论】:
-
没有将原始数组自动装箱为相应包装器类型的数组。
-
使用
Stream将int转换为Integer然后收集所有我想是最简单的... -
自动装箱是 Java 编译器在原始类型和它们对应的对象包装类之间进行的自动转换。例如,将 int 转换为 Integer,将 double 转换为 Double,等等。如果转换以另一种方式进行,这称为拆箱,但不是数组格式的集合。
标签: java