当前位置: 首页 > news >正文

sealed class-kotlin中的封闭类

在 Kotlin 中,sealed class密封类)是一种特殊的类,用于限制继承的类的数量。密封类可以被用来表示一组有限的类型,通常用于状态管理或表达多种可能的错误类型。

密封类用 sealed 关键字定义,这意味着只能在同一个文件中声明其子类。它有助于确保类型的安全性,因为编译器能够知道所有可能的子类类型。

sealed class Error : Exception() {data class NetworkError(val message: String) : Error() // 网络错误data class TimeoutError(val duration: Long) : Error() // 超时错误object UnknownError : Error() // 未知错误
}fun handleError(error: Error) {when (error) {is Error.NetworkError -> println("Network error: ${error.message}")is Error.TimeoutError -> println("Timeout after ${error.duration} ms")Error.UnknownError -> println("An unknown error occurred")}
}fun main() {val error1: Error = Error.NetworkError("Unable to connect to server")val error2: Error = Error.TimeoutError(5000)val error3: Error = Error.UnknownErrorhandleError(error1) // 输出: Network error: Unable to connect to serverhandleError(error2) // 输出: Timeout after 5000 mshandleError(error3) // 输出: An unknown error occurred
}
  • 子类: NetworkErrorTimeoutErrorError 的子类,表示具体的错误类型。UnknownError 是一个对象表示特定的错误状态。
  • 类型安全: 使用 when 表达式处理错误时,编译器会确保覆盖所有可能的子类,减少了遗漏处理某些错误的风险。
  • 扩展性: 如果需要增加新的错误类型,只需在同一文件中添加新的子类,保持代码结构的清晰性。
http://www.lryc.cn/news/467075.html

相关文章:

  • MongoDB Shell 基本命令(一)
  • Flink时间语义和时间窗口
  • 在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面,这个是我们做wpf项目必要会的一个功能
  • 基于opencv的人脸闭眼识别疲劳监测
  • aeo认证需要什么材料
  • 【iOS】YYModel
  • Cadence元件A属性和B属性相互覆盖
  • 【火山引擎】语音合成 | HTTP接口 | 一次性合成 | python
  • YOLOv11改进-卷积-空间和通道重构卷积SCConv
  • 记录一次从nacos配置信息泄露到redis写计划任务接管主机
  • Unity加载界面制作
  • 最好的ppt模板网站是哪个?做PPT不可错过的18个网站!
  • 煤矿安全监测监控作业题库
  • 【记录】Django数据库的基础操作
  • XHCI 1.2b 规范摘要(五)
  • 小程序短链接生成教程
  • C++进阶之路:再谈构造函数、static成员、友元(类与对象_下篇)
  • C 函数指针与回调函数
  • CTF(九)
  • 三种单例实现
  • Spring XML配置方式和Spring Boot注解方式的详细对照关系
  • leetcode 无重复字符串的排列和组合
  • 7. 配置
  • WPF中Grid、StackPanel、Canvas、WrapPanel的区别
  • 昇思MindSpore进阶教程--开发常见问题
  • 【Linux】Linux进程地址空间
  • 创建包含可导入浏览器信任的SSL自签名证书
  • [Windows] 很火的开源桌面美化工具 Seelen UI v2.0.2
  • 华帝携手抖音头部达人,金牌导演李力持量身打造厨电定制微短剧
  • 监控易监测对象及指标之:JBoss 7.1.x中间件监控