繁体   English   中英

如何为 kotlin 正确创建辅助构造函数

[英]How to created correctly a secondary constructor for kotlin

我正在开发一个应用程序,我在其中管理应用程序用户提供的不同服务。

所以,我想创建一个辅助构造函数,我可以在其中为服务添加价格。 关于我在不同论坛上阅读的内容,正确的方法是委托给 this() 调用主构造函数的属性,而在我的例子中,辅助构造函数负责新属性作为价格。

所以我尝试做这样的事情:

@kotlinx.serialization.Serializable
data class Service(
    var status: String?,
    var type: String,
) : Serializable {

    //TODO: Crear onstructor secundario para instanciar
    // los service mostrados en el publishFragment.

    constructor(
        status: String,
        type: String,
        price:Int)
            : this(status, type){

    }
}

但是我不知道如何在没有实现第一个构造函数的情况下设置价格。

我猜

在数据类中,主构造函数必须设置所有值。 在您的情况下,您可以只使用具有默认价格值的主构造函数:

data class Service(
    val type: String,
    val status: String? = null,
    val price: Int? = null
)

您当然可以添加辅助构造函数而不是使用默认值,它只会使用 null 值调用主构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM