我想使用List.distinctBy过滤(Javaslang)提供的列表,我在pom.xml中添加了这个依赖项
<dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr-kotlin</artifactId>
<version>0.10.0</version>
但是当我在代码中使用它时
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream()
.distinctBy(MenuPriceByDay::getUpdateLocalDate)
.map(cp -> cp.getUpdateLocalDate())
.sorted()
.forEach(System.out::println);我有一个编译错误:
The method distinctBy(MenuPriceByDay::getUpdateLocalDate) is undefined for the type
Stream<MenuPriceByDay>发布于 2019-03-17 08:53:44
List.distinctBy是io.vavr.collection.List上的一个方法,您试图在java.util.stream.Stream上调用它。
您可以使用例如StreamEx:
StreamEx.of(
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream())
.distinct(MenuPriceByDay::getUpdateLocalDate)
.map // etc但是对于这种特殊情况,您确实不需要它,因为之后您使用相同的函数map 执行。所以它应该相当于
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream()
.map(cp -> cp.getUpdateLocalDate())
.distinct()
.sorted()
.forEach(System.out::println);(假设getUpdateLocalDate是纯函数)。
https://stackoverflow.com/questions/55205202
复制相似问题