1. 数据类 (Data Class)
如果你写过 Java 的 Entity/POJO,一定厌烦了写几十行的 Getter、Setter、equals()、hashCode() 和 toString()。
在 Kotlin 中,只需要一个关键字:data。
data class User(val id: Int, val name: String, val email: String)
val user = User(1, "Null猫", "null@cat.com")
println(user) // 输出: User(id=1, name=Null猫, email=null@cat.com)
val user2 = user.copy(name = "新名字")2. 枚举类 (Enum Class)
enum class Color(val rgb: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF);
fun printColor() {
println("name的颜色值是rgb")
}
}3. 密封类 (Sealed Class) —— 枚举的升级版
枚举只能有固定的常量,而密封类可以拥有带状态的子类。它常用于表示受限的类层次结构(比如网络请求的结果)。
sealed class Result<out T> {
data class Success<T>(val data: T) : Result<T>()
data class Error(val exception: Exception) : Result<Nothing>()
object Loading : Result<Nothing>()
}
fun handleResult(result: Result<String>) {
when (result) {
is Result.Success -> println("成功: ${result.data}")
is Result.Error -> println("失败: ${result.exception.message}")
is Result.Loading -> println("加载中...")
}
}
评论交流
欢迎留下你的想法