You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确创建Kotlin类的次构造函数并添加额外price参数

Kotlin Service类添加次构造price参数实现方案

要实现不修改主构造的前提下支持price参数赋值,你需要先在类体内声明price属性,再在次构造中完成赋值即可,具体实现如下:

@kotlinx.serialization.Serializable
data class Service(
    var status: String?,
    var type: String,
) : Serializable {
    // 声明price属性,设置默认值适配主构造的实例创建逻辑
    var price: Int? = null

    constructor(
        status: String,
        type: String,
        price: Int
    ) : this(status, type) {
        // 次构造内完成price属性赋值
        this.price = price
    }
}

注意事项

  • 上述实现中price未加入主构造,因此data class自动生成的equals()、hashCode()、toString()、copy()方法不会包含price属性,如果你需要这些方法识别price参数,更推荐直接在主构造中给price加默认值,不需要额外写次构造,兼容性更好:
@kotlinx.serialization.Serializable
data class Service(
    var status: String?,
    var type: String,
    // 加默认值,原有调用主构造的代码无需修改,同时支持传入price参数
    var price: Int = 0
) : Serializable
  • 两种写法都支持kotlinx.serialization序列化规则,price属性会正常参与序列化/反序列化流程。

内容的提问来源于stack exchange,提问作者Manuel Lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:15:01