簡體   English   中英

如何將Java類轉換為Kotlin數據類

[英]How to transition Java class to Kotlin Data Class

我使用Android Studio的Kotlin插件將Java類轉換為Kotlin。 事情還不是Kotlin風格。 我想改用Kotlin數據類。 但是,每當我使用主構造函數和輔助構造函數創建它時,它都將不起作用。 在我的情況下,正確的DATA類實現是什么?

class Task {

    @SerializedName("_id")
    var id: String? = null
    @SerializedName("text")
    var taskTitle: String? = null
    @SerializedName("completed")
    var isCompleted: Boolean? = null

    constructor(taskTitle: String) {
        this.taskTitle = taskTitle
    }

    constructor(taskTitle: String, completed: Boolean?) {
        this.taskTitle = taskTitle
        this.isCompleted = completed
    }

    constructor(id: String, taskTitle: String, isCompleted: Boolean?) {
        this.id = id
        this.taskTitle = taskTitle
        this.isCompleted = isCompleted
    }

}

Kotlin引入了構造函數中參數的默認值。 您可以使用它們使用Kotlin僅使用一個構造函數來創建數據類。 看起來像這樣

data class Task(    
    @SerializedName("_id") var id: String? = null,
    @SerializedName("text") var taskTitle: String? = null,
    @SerializedName("completed") var isCompleted: Boolean? = null
)

因此,您可以將數據類與任意數量的參數一起使用,例如:

var task = Task(taskTitle = "title")
var task = Task("id", "title", false)
var task = Task(id = "id", isCompleted = true)

您甚至可以替換參數順序

var task = Task(taskTitle = "title", isCompleted = false, id = "id")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM