为什么? 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 };
}
}
1条答案
按热度按时间4xy9mtcn1#
如果你看看
Collection.toArray
您将看到的方法:另一方面,实施
IntFunction
您所拥有的类似于:因此值传递给
generateArrayBySize
与传递给apply
方法IntFunction
,即。0
. 当然,将列表转换为数组的直接方法是: