首页 > 解决方案 > 用于理解的 Java

问题描述

在 Scala 中,我可以编写一个像这样的简短方法:

def xy(
  maybeX: Option[String],
  maybeY: Option[String]): Option[String] = {

  for {
    x <- maybeX
    y <- maybeY
  } yield {
    s"X: $x Y: $y"
  }
}

当涉及到两个或多个Optional<>变量时,Java 是否有类似的东西?

标签: javaoptional

解决方案


这将是适当的替代方案:

Optional<String> maybeXY = maybeX.flatMap(x -> maybeY.map(y -> x + y));

scalafor 理解只是map,flatMapfilter调用的语法糖。

这是一个很好的例子: How to convert map/flatMap to for comprehension


推荐阅读