定义:
密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。
在什么情况下使用:
使用场景举例:表示 UI 的不同状态,如加载、成功和错误。
创建举例:
//创建
sealed class State{
object YES: State()
object ING: State()
object NO(val msg: String): State()
}
使用举例:
//创建和声明
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
}
}
}
_______________________________________________________________________
如果您感觉文章有用的话麻烦点个赞吧.