【发布时间】:2018-10-19 23:44:48
【问题描述】:
我有这个代码:
Stream<String> stringStream = Stream.of("a", "b", "c");
Object[] arr = stringStream.toArray();
为什么arr 不是String[]?
【问题讨论】:
-
Java 无法根据调用的返回值推断泛型类型。
-
数组也很奇怪,因为它们会在运行时记住它们的项目类型并检查它。因此,如果
toArray()不知道它应该创建什么类型的数组,它就只能创建Object[] -
@GBlodgett 这是关于
Streams,而不是Lists。 -
尝试将
toArray()方法实现为泛型,看看是否可以。