Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
332 views
in Technique[技术] by (71.8m points)

kotlin read only var within a sealed data class structure

I have a sealed class like so:

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()
}

for each one of these I want the sort to be defaulted but also not overwritten. Currently this can be overwritten. How can I achieve this within this model?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try this:

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)
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...