定义:
密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。
在什么情况下使用:
- 代表有限的状态集:在建模状态机或处理具有有限状态的业务逻辑时,密封类是一个理想的选择。
- 安全的类型检查:使用密封类可以确保 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}}}
_______________________________________________________________________
如果您感觉文章有用的话麻烦点个赞吧.