java - String 流上的 toArray 返回 Object[]

标签 java arrays generics

我有这段代码:

Stream<String> stringStream = Stream.of("a", "b", "c");
Object[] arr = stringStream.toArray();

为什么 arr 不是 String[]

最佳答案

Stream 的 toArray 函数自然会返回一个 Object[]。 .

这是函数的签名:

<A> A[] toArray(IntFunction<A[]> generator)

您可能会注意到有一个生成器作为参数。
IntFunction<A[]> generator的目的就是把一个整数,也就是数组的大小,转换成一个新的数组。

获得 String[] ,你可以这样做:

Stream<String> stringStream = Stream.of("a", "b", "c");
String[] arr = stringStream.toArray(size -> new String[size]);

更多信息可以咨询Docs

希望这对您有所帮助!

关于java - String 流上的 toArray 返回 Object[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52901151/

相关文章:

Java 泛型运行时实例化

java - 如何根据用户属性创建 Spring session 范围的 bean

java - @PostFilter 可选

java - 如何将intellij中的普通java项目转为JavaFx项目

arrays - 在 Ruby 中将数组转换为索引哈希

java - 带数组的二项式系数

Java游戏: Keeping framerate the same on all computers

c - 我需要从一个单词中获取字母

c# - 将泛型传递给扩展方法

c# - 通用直通接口(interface)。这可能吗?