java - 在 Kotlin 中克隆 Builder 对象

标签 java kotlin

我有以下 Kotlin 代码,这是对我的问题的简化:

val baseBuilder : Builder =
    Builder("xx")
        .setA("aa")
        .setB("bb")

fun f(action: Action): Builder {
    var extraBuilder = baseBuilder
        .add(action)
    return extraBuilder
}

如果我多次调用 f ,我最终会得到一个添加了许多操作的构建器,但我希望 f 返回一个只有一个操作的构建器。我无法更改该 Builder 类的实现。我想在 f 函数中制作 baseBuilder 的副本,但找不到方法。或者也许我可以通过其他方式实现我想要的?

最佳答案

使 baseBuilder 成为一个函数,而不是一个值。

fun baseBuilder() = Builder("xx").setA("aa").setB("bb")

fun f(action: Action): Builder) {
  return baseBuilder().add(action)
}

关于java - 在 Kotlin 中克隆 Builder 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68120800/

相关文章:

验证和 DDD - kotlin 数据类

java - 我放入自定义数组适配器后 ListView 崩溃

java - 如何创建数组的 ArrayList

java - 使用 java (android) 在 php 中动态更改 mysql 查询

java - 如何获取 Gradle 中生命周期库的版本?

android - 无法更新房间数据库项目

java - 新建文档时如何删除多个 "Attribute not allowed here error"?

java - Handler处理失败;嵌套异常是 java.lang.NoClassDefFoundError : com/mongodb/MongoException$DuplicateKey

java - 如何将sql查询追加到java中的现有文件中?

android - 在 Android Kotlin 中异步获取 URL