有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

字符串流上的java toArray返回对象[]

我有以下代码:

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

为什么arr不是String[]


共 (1) 个答案

  1. # 1 楼答案

    流的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

    希望这有帮助