我正在尝试编写一个从缓存中获取数据的表达式(它们返回一个List)并将所有内容收集在一起。
我想到了:
List<myDto> myJointSnapshot = cachesMap.values().stream()
.flatMap(c->c.getSnapshot()).collect(Collectors.toList());
其中getSnapshot还返回List
这给了我一个错误:不存在类型变量R的实例,因此List
我该如何纠正表达式有效?
答案 0 :(得分:5)
numpy.inf
flatMap(c->c.getSnapshot().stream())...
期望得到flatMap
,在您的情况下为Stream
。
答案 1 :(得分:3)
为了更好地理解,您可以分为2个步骤
// Lambda
List<myDto> myJointSnapshot = cachesMap.values().stream()
.map(c -> c.getSnapShot())
.flatMap(l->l.stream())
.collect(Collectors.toList());
// Method reference
List<myDto> myJointSnapshot = cachesMap.values().stream()
.map(Caches::getSnapshot) // replace 'Caches' by real type
.flatMap(List::stream)
.collect(Collectors.toList());