我如何利用 Scala 中多个选项的构建器
How do I utilize builder from several options in scala
我在我的 Scala 代码中使用 Java 库并且必须使用一些构建器:
val buildResult = new Builder()
.withPropertyA(a)
.withPropertyB(b)
.withPropertyC(c)
.build()
如果我有 bOption
和 cOption
作为 Option
包含 b
和 c
并且不需要方法 withPropertyB
怎么办如果相应的值为 None
,则调用 withPropertyC
。
执行此操作的惯用方法是什么?
Fluent 界面,尤其是 Java 界面,通常依赖于变异,因此惯用的方法是将其包装在纯界面中。
但是,您可以(滥用)使用就地突变来执行以下操作:
val builder = new Builder()
bOption.foreach(builder.withPropertyB)
cOption.foreach(builder.withPropertyC)
val buildResult = builder.build()
我在我的 Scala 代码中使用 Java 库并且必须使用一些构建器:
val buildResult = new Builder()
.withPropertyA(a)
.withPropertyB(b)
.withPropertyC(c)
.build()
如果我有 bOption
和 cOption
作为 Option
包含 b
和 c
并且不需要方法 withPropertyB
怎么办如果相应的值为 None
,则调用 withPropertyC
。
执行此操作的惯用方法是什么?
Fluent 界面,尤其是 Java 界面,通常依赖于变异,因此惯用的方法是将其包装在纯界面中。
但是,您可以(滥用)使用就地突变来执行以下操作:
val builder = new Builder()
bOption.foreach(builder.withPropertyB)
cOption.foreach(builder.withPropertyC)
val buildResult = builder.build()