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

微网站建设包含哪些内容做基网站

微网站建设包含哪些内容,做基网站,昆明做网站建设企业推荐,北京电力交易中心主任Kotlin中的密封类: kotlin中的密封类,用关键词Sealed修饰,且还有一个规定:Sealed类的子类应该是Sealed类的嵌套类,或者应该在与Sealed类相同的文件中声明。 当我们想定义一个有相同父类,但是有不同子类的时候&#xf…

Kotlin中的密封类:

kotlin中的密封类,用关键词Sealed修饰,且还有一个规定:Sealed类的子类应该是Sealed类的嵌套类,或者应该在与Sealed类相同的文件中声明。
当我们想定义一个有相同父类,但是有不同子类的时候,我们可以用枚举,抽象类,密封类来表示。
下面一一讲解它们之间的区别。

1. 枚举

enum class Result(val data: String) {SUCCESS("Success"),ERROR("Error")
}

但是如果我们ERROR中想定义一个Exception,那么枚举类是不允许的。

enum class Result(val message: String) {SUCCESS("Success"),ERROR(val exception: Exception) // 错误的写法
}

说到底,枚举它不能很好的扩展子类的状态

2. 密封类

sealed class Result
data class Success(val msg: String) : Result()
data class Error(val errorCode: Int, val exception: Exception) : Result()
object Other : Result()

可以看到,密封类的好处是,它的子类可以是普通类,data class, object等,而且子类可以自由扩展属性状态
另外,密封类的另外一个好处是,当我们用when的时候,不用再加else 判断了

 when (val result: Result = Success("success")) {is Success -> {Log.d("TAG", result.msg)}is Error -> {Log.d("TAG", "$result.errorCode")}is Other -> {Log.d("TAG", "Other")}}

3. 抽象类

我们将Result改成抽象类

abstract class Result
data class Success(val msg: String) : Result()
data class Error(val errorCode: Int, val exception: Exception) : Result()
object Other : Result()

在when中使用的时候,编译器会提示我们要加else分支。但是在密封类中,就不会存在这个问题,因为编译器知道密封类所有的子类,但是抽象类不一样了,因为我们可以在任意地方来继承实现子类,子类可能是很多的,所以需要加上else分支。
在这里插入图片描述

http://www.yayakq.cn/news/317915/

相关文章:

  • 网站开发找谁哈尔滨建站怎么做
  • 如何利用源码做网站免费建立网站
  • dw做网站小技巧劲松网站建设
  • 聊城网站优化网络推广福田做网站需要多少钱
  • 最低价做网站企业网页
  • 网站和系统哪个好做删除wordpress首页链接
  • 网站注入木马飓风算法恢复的网站
  • 帮人做网站赚多少钱163邮箱注册
  • 网站黑色代码百度怎么做网站广告
  • 个人网站排行做网站留后门是怎么回事
  • 有什么做C语言的网站网上国网推广宣传语
  • 社区微网站建设方案ppt模板下载深圳办公室装修公司哪家好
  • 网站规划的基本内容有哪些网站被百度k
  • 璧山网站建设手机无法访问wordpress
  • 企业网站优化的方式搜索引擎优化步骤
  • 宁波海曙网站开发公司硬件开发学什么专业
  • 宁乡市建设局网站甘肃网站开发
  • 张家港网站建设公司网页打不开的一个解决方法
  • 南昌建设企业网站刚开始做写手上什么网站
  • 宝塔网站建设黑龙江网站建设公司
  • 东莞企创做网站怎么样wordpress theme generator
  • 济南建设质量协会网站上海专业做网站较好的公司
  • 在哪里建网站好app制作单位
  • 注册名字商标查询邱县seo整站排名
  • 河东做网站桥东企业做网站
  • 网站建设可行性研究wordpress添加前台登录
  • 淘宝网站可以做百度快照吗图片网站怎么做排名
  • 怎样手机网站建设免费制作网站
  • 做英语在线翻译兼职网站做网站设计答辩问题
  • 网站建设行业知乎全球做的比较好的网站有哪些