首页 > 解决方案 > 如何为 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){

    }
}

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

我猜

标签: androidkotlin

解决方案


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

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

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


推荐阅读