我有以下代码:
Stream<String> stringStream = Stream.of("a", "b", "c");
Object[] arr = stringStream.toArray();
为什么arr
不是String[]
?
答案 0 :(得分:3)
Stream的toArray函数自然返回一个Object[]
。
这是函数的签名:
<A> A[] toArray(IntFunction<A[]> generator)
您可能会注意到有一个 generator 作为参数。
IntFunction<A[]> generator
的目的是将整数(即数组的大小)转换为新数组。
要获取String[]
,您可以执行以下操作:
Stream<String> stringStream = Stream.of("a", "b", "c");
String[] arr = stringStream.toArray(size -> new String[size]);
有关更多信息,您可以咨询Docs
希望这会有所帮助!