首页 > 解决方案 > kotlin 只读 var 在密封的数据类结构中

问题描述

我有一个像这样的密封类:

public sealed class DocumentBody {

    public data class Information(
        val Id: String,
        val name: String,
        val sort: Int = 2
    ) : DocumentBody ()

    public data class Location(
        val name: String,
        val address: String? = null,
        val sort: Int = 3
    ) : DocumentBody()

    public data class Rating(
        val name: String,
        val rating: Int,
        val sort: Int = 3
    ) : DocumentBody()
}

对于其中的每一个,我希望排序被默认但也不会被覆盖。目前这可以被覆盖。我怎样才能在这个模型中实现这一点?

标签: kotlin

解决方案


尝试这个:

sealed class DocumentBody(
    val sort: Int
) {
    data class Information(
        val Id: String,
        val name: String
    ) : DocumentBody(sort = 2)

    data class Location(
        val name: String,
        val address: String? = null
    ) : DocumentBody(sort = 3)

    data class Rating(
        val name: String,
        val rating: Int
    ) : DocumentBody(sort = 3)
}

推荐阅读