-
定义 :
data
是 Kotlin 中的一个关键字,用于声明一个数据类(data class
)。 -
作用 :自动生成一些常用的方法(如
equals()
、hashCode()
、toString()
、copy()
等),并支持解构声明
。- 限制 :
- 必须至少有一个主构造函数参数。
- 主构造函数中的参数会被用于生成方法。
- 不能直接继承其他普通类(只能实现接口或继承
sealed class
)。
解构声明
sealed class Result
data class Success(val data: Any) : Result()
fun main() {
val successResult = Success("Success Data")
// 解构属性
val (data) = successResult
println(data)
}
与Java中lombok注解@Data的区别
语言内置支持 | 是(Kotlin 原生支持)。 | 否(需要引入 Lombok 库)。 |
---|---|---|
自动生成的方法 | 自动生成equals() 、hashCode() 、toString() 、copy() 等方法。 | 自动生成 getter、setter、equals() 、hashCode() 、toString() 等方法。 |
解构支持 | 支持解构声明(Destructuring Declarations)。 | 不支持解构声明。 |
继承限制 | 不能直接继承其他普通类(只能实现接口或继承sealed class )。 | 没有继承限制,可以正常继承其他类。 |
简洁性 | 更加简洁,无需额外依赖。 | 需要引入 Lombok 库,并配置 IDE 和构建工具。 |
灵活性 | 适合简单的数据模型,不适用于复杂逻辑。 | 更灵活,适用于各种场景(包括复杂逻辑)。 |
双链
双链 | |
---|---|
密封类sealed class |