我如何利用 Scala 中多个选项的构建器

How do I utilize builder from several options in scala

我在我的 Scala 代码中使用 Java 库并且必须使用一些构建器:

val buildResult = new Builder()
  .withPropertyA(a)
  .withPropertyB(b)
  .withPropertyC(c)
  .build()

如果我有 bOptioncOption 作为 Option 包含 bc 并且不需要方法 withPropertyB 怎么办如果相应的值为 None,则调用 withPropertyC

执行此操作的惯用方法是什么?

Fluent 界面,尤其是 Java 界面,通常依赖于变异,因此惯用的方法是将其包装在纯界面中。

但是,您可以(滥用)使用就地突变来执行以下操作:

val builder = new Builder()
bOption.foreach(builder.withPropertyB)
cOption.foreach(builder.withPropertyC)
val buildResult = builder.build()