如何根据语言习惯在 Kotlin 中正确实现 Builder 模式?
大家好!我是 Kotlin 新手(从 Java 转过来),正在尝试为一个包含大量参数的类实现 Builder 模式。在 Java 中,我通常会创建一个静态内部类 Builder,包含 set... 方法和 build() 方法。但在 Kotlin 中,我发现很多机制不同,我的 Java 风格显得很笨重。
以下是我尝试实现的内容:
```kotlin
class User(
val name: String,
val age: Int?,
val email: String?,
val phone: String?,
val address: String?,
val isActive: Boolean
)
```
我希望只有 name 是必填项,其余字段为可选项。在 Java 中,我会编写类似 `setAge(age: Int): Builder` 的方法,但在 Kotlin 中这显得不自然。我尝试过使用 named arguments 和默认值,但这无法解决需要分步创建对象的问题(例如在调用链中)。
另外,我听说过 `apply {}` 函数,但不确定如何正确使用。请告诉我如何在 Kotlin 中编写符合语言习惯的代码。