【发布时间】:2021-01-04 17:40:00
【问题描述】:
为什么generateEmptyArrayBySize 方法接收0 作为输入,而不是3?
我期待收到列表大小。
public class CollectionToArrayTest {
public static void main(String[] args) {
var list = List.of(1, 2, 3);
var array = list.toArray(CollectionToArrayTest::generateArrayBySize);
out.println("array: " + Arrays.toString(array)); // array: [1, 2, 3]
}
private static Integer[] generateArrayBySize(int arraySize) {
out.println("arraySize: " + arraySize); // arraySize: 0
return new Integer[arraySize];
}
}
【问题讨论】:
-
只是为了指出使用 T[] 或 Supplier
作为参数的 toArray 方法的真正原因是因为在泛型类中我们无法创建泛型数组类型。 new T[]{} 无效。
标签: java lambda collections java-stream