如何将Java类转换为Kotlin数据类

我使用Android工作室的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")