0
我使用Android工作室的Kotlin插件將我的Java類轉換爲Kotlin。事情不是Kotlin風格。我想要改用Kotlin Data Class。但是每當我使用主要和次要構造函數創建它時,它都不起作用。在我的情況下,正確的DATA類實現是什麼?如何將Java類轉換爲Kotlin數據類
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
}
}
所以,再有就是不需要具有不同參數數目的二級構造函數? – MikeB
不,您必須傳遞必需的參數(在這種情況下,它們都不是),其餘部分是可選的,並且將被初始化爲默認值。如果你想爲只有兩個參數的自定義值,你可以按名稱指定它們(如我的回答中所述) – Tuby
請注意,如果你想從Java代碼訪問不同的構造函數,你需要添加'@ JvmOverloads'註釋到構造函數。 https://stackoverflow.com/questions/35748906/jvmoverloads-annotation-for-class-primary-constructor –