前言
在上一节,我们讲到了kotlin
的枚举类
相关知识。这节我们来了解下密封类
的相关知识。
今天涉及的知识有:
- 为什么要使用密封类
- 密封类简介
- 密封类的使用
一. 为什么要使用密封类
当我们在使用枚举类
做判断的时候,为了代码逻辑的完整性,我们会做类似如下的处理:
var status:Int=0
tv_test.text=when(status){
Game.START.status-> "我们要开始游戏了"
Game.RUN.status-> "游戏号激烈啊"
Game.END.status-> "哎,这么快就完了"
else -> "未知状态"
}
这里,我们会发现其实枚举类Game就包含START
,RUN
,END
三个枚举,而以上代码中的else
分支基本不会执行。但是你有必须得写,为了避免这种无效代码,就可以使用密封类
二.密封类简介
密封类的声明是用关键字sealed
,然后之前讲过的几个枚举要写成此封装类的嵌套类
样式,且结尾要继承当前外部类。
以枚举类Game
为例:
enum class Game (var status:Int,var description: String){
START(100,"游戏开始"), //游戏开始
RUN(200,"游戏进行中"), //游戏进行中
END(400,"游戏结束") //游戏结束
}
将其改写为封装类后,是这样的:
网友评论