【发布时间】:2014-12-24 01:36:00
【问题描述】:
我正在尝试在 Java 中 flatMapOptionals。这是一个简化的例子:
List<String> x = Arrays.asList("a", "b", "c");
List<String> result = x.stream().flatMap((val) -> val.equals("b") ? Optional.empty() : Optional.of(val)).collect(Collectors.toList());
我从编译器收到此错误消息:
Error:(10, 27) java: incompatible types: no instance(s) of type variable(s) T exist so that java.util.Optional<T> conforms to java.util.stream.Stream<? extends R>
怎么了?这是我在 Scala 中尝试实现的示例:
List("a", "b", "c").flatMap(x => if (x == "b") None else Some(x))
返回:
res2: List[String] = List(a, c)
正如预期的那样。
如何将其转换为 Java 以便编译?
【问题讨论】:
标签: java functional-programming java-8 optional flatmap