gpt4 book ai didi

Java 8 - 类型不匹配 : cannot convert from List to List

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:04 25 4
gpt4 key购买 nike

我有一个字符串列表:

List<String> list = Arrays.asList("a1,a2", "b1,b2");

然后转换列表中的所有内容,如:"a1","a2","b1","b2"写了这个:

List<String> ss1 = list.stream()
.flatMap(s -> Stream.of(s.split(",")))
.collect(Collectors.toList());

但我有一个错误:“类型不匹配:无法从 List<Serializable> 转换为 List<String>。我处理的问题变成了这个:

List<String> ss2 = list.stream()
.flatMap(s -> Arrays.stream(s.split(",")))
.collect(Collectors.toList());

Eclipse Neon 表明区别在于 flatMap返回类型。第一flatMap返回 List<Serializable>第二个返回 List<String> .

但两者都是Stream.of()Arrays.stream()返回 <T> Stream<T> (Eclipse 建议它们都返回 Stream<String> )。

再一次,Stream.of()内部使用(并返回输出)Arrays.stream() .那么,第一种情况又出了什么问题?

最佳答案

这是一个 Eclipse 错误

<子> Bug 508834 , 感谢 @Tunaki


注意方法签名:

//Stream.of
<T> Stream<T> of(T... values)
//Arrays.stream
<T> Stream<T> stream(T[] array)

现在,对于 Arrays.stream很明显,调用类型为 T 的数组将返回 Stream<T> .但是用Stream.of它应该返回 Stream<T>Stream<T[]> ?即可变参数的类型是什么;您传递的数组是第一个参数(因此可变参数是数组的数组)还是将数组作为所有参数传递?

那是你的问题。

关于Java 8 - 类型不匹配 : cannot convert from List<Serializable> to List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41571839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com