Avatar ·

如何根据语言习惯在 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 中编写符合语言习惯的代码。