定义:
密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。
在什么情况下使用:
- 代表有限的状态集:在建模状态机或处理具有有限状态的业务逻辑时,密封类是一个理想的选择。
- 安全的类型检查:使用密封类可以确保 when 表达式涵盖所有可能的情况,从而避免漏掉某些分支。
**使用场景举例:**表示 UI 的不同状态,如加载、成功和错误。
创建举例:
Kotlin
//创建
sealed class State{
object YES: State()
object ING: State()
object NO(val msg: String): State()
}
使用举例:
Kotlin
//创建和声明
var thisState: MediatorLiveData<State> = MediatorLiveData()
//赋值
thisState.value = State.NO("失败的原因")
//使用
thisState.observe(this) {
when (it) {
State.YES -> {
}
State.ING -> {
}
is State.NO -> {
var msg: String = it.msg
}
}
}
如果您感觉文章有用的话麻烦点个赞吧.