【发布时间】:2018-10-06 04:13:51
【问题描述】:
当我尝试使用 Java 8 流进行转换时,出现编译错误:
不兼容的类型
必需:列表
找到:java.lang.Object
ArrayList list = new ArrayList();
list.add("Test");
list.add("Java");
list.add("Other");
//This won't compile
List<String> strings = list.stream()
.map(object -> Objects.toString(object, null))
.collect(Collectors.toList());
【问题讨论】:
-
不要使用 raw 泛型类型,也就是非泛型列表。只需将代码更改为
ArrayList<String> list = new ArrayList<>(); -
@Andreas 从标题中我猜他由于某种原因无法更改
-
如果你知道这是
List<String>,你就不能直接投吗?((List<String>)list).stream() -
@eis 正确。我实际上正在调用返回
List的第 3 方方法 -
您可以毫无问题地将其转换为
List<String>
标签: java java-stream