java - 使用流的地图收集产生奇怪的编译错误
问题描述
我有这个方法:
public void fields(TableField... s){
// compilation error on next line
Collection<String> fields = Arrays.asList(s).stream().map(v -> v.getValue());
this.fields.addAll(fields);
}
并且 TableField 很简单,看起来像:
class TableField {
public String getKey() {
return this.key;
}
public String getValue() {
return this.value;
}
}
但我看到了这个编译错误:
不兼容的类型。必需的集合,但“映射”被推断为流:不存在类型变量 R 的实例,因此流符合集合
解决方案
map
返回一个转换的Stream
. 如果你想要一个集合,你需要收集 Stream。例如:
Collection<String> fields =
Arrays.asList(s).stream().map(v -> v.getValue()).collect(Collectors.toList());
推荐阅读
- android - 反应原生 this.props.navigation.navigate 未定义
- asp.net - Asp.net HTTP Handler 会话处理
- ios - 需要将值从 firebase 远程配置更新到我的 plist
- java - 在 Android 中使用 sinch 来电通知,我正在使用 FireBase 消息服务,但当应用程序在后台被杀死时没有接到电话
- angular - 更改语言时重新初始化地图或重新加载组件
- javascript - 如果满足两个条件,则 Javascript 值的总和
- android - 部分用户遇到谷歌登录问题,部分用户可以成功登录
- r - 带有 2 个轴的 BarPlot 上的 R 叠加线图
- sql-server - SQL Server / EF:保存到数据库时十进制值的比例错误
- javascript - 在桌面应用程序的浏览器中加载本地 JavaScript 文件