Java为了理解

Java For Comprehension

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

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

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

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

这将是合适的选择:

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

用于理解的 scala 只是 mapflatMapfilter 调用的语法糖。

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