我不能让我的头解决这个问题。
我想与Java流扭动这样的:
List<Manufacturer> manufacturers = ... // List of Manufacturer-Objects
List<List<Car>> cars = new ArrayList<>();
for (Manufacturer man : manufacturers) {
cars.add(man.getCars()); // Let's just say getCars() returns a List of cars.
}
我想用Java流应该如下所示:
List<List<Car>> cars = manufacturers.stream().
.flatMap(man -> man.getCars().stream())
.collect(Collectors.toList());
但我的IDE以下称 no instance(s) of type variable(s) R exist so that List<Event> conforms to Stream<? extends R>
和Java编译器:
java: incompatible types: cannot infer type-variable(s) R
(argument mismatch; bad return type in lambda expression
java.util.List<elements.Car> cannot be converted to java.util.stream.Stream<? extends R>)
该解决方案的任何?谢谢!
这里的问题是,您使用的是flatMap
这需要所有的名单,并给你一个运营商List<Car>
。相反,你必须使用map
运算符来获得所需的结果。下面是它的外观。
List<List<Car>> result = manufacturers.stream()
.map(Manufacturer::getCars)
.collect(Collectors.toList());
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句