Android kotlin密封类-基本使用

定义:

密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。

在什么情况下使用:

  1. 代表有限的状态集:在建模状态机或处理具有有限状态的业务逻辑时,密封类是一个理想的选择。
  2. 安全的类型检查:使用密封类可以确保 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
                }
            }
        }

复制代码
如果您感觉文章有用的话麻烦点个赞吧.
相关推荐
百锦再23 分钟前
Android Studio开发 SharedPreferences 详解
android·ide·android studio
青春给了狗34 分钟前
Android 14 修改侧滑手势动画效果
android
CYRUS STUDIO41 分钟前
Android APP 热修复原理
android·app·frida·hotfix·热修复
火柴就是我2 小时前
首次使用Android Studio时,http proxy,gradle问题解决
android
limingade2 小时前
手机打电话时电脑坐席同时收听对方说话并插入IVR预录声音片段
android·智能手机·电脑·蓝牙电话·电脑打电话
浩浩测试一下2 小时前
计算机网络中的DHCP是什么呀? 详情解答
android·网络·计算机网络·安全·web安全·网络安全·安全架构
喵手2 小时前
从 Java 到 Kotlin:在现有项目中迁移的最佳实践!
java·python·kotlin
青春给了狗4 小时前
Android 14 系统统一修改app启动时图标大小和圆角
android
pengyu4 小时前
【Flutter 状态管理 - 柒】 | InheritedWidget:藏在组件树里的"魔法"✨
android·flutter·dart
居然是阿宋6 小时前
Kotlin高阶函数 vs Lambda表达式:关键区别与协作关系
android·开发语言·kotlin