kotlin 密封类
时间: 2023-12-22 17:25:04 浏览: 96
Kotlin 中的密封类是一种特殊的类,用于表示受限的类继承结构。它们可以看作是枚举类的扩展,枚举类只能有一个实例,而密封类可以有多个实例。密封类的主要作用是在使用 when 表达式时,限制条件分支的数量,使代码更加安全和简洁。
密封类的定义方式如下:
```
sealed class SealedClass
```
密封类的子类可以有多个实例,但是必须定义在密封类的内部或同一文件中。例如:
```
sealed class Result<out T>
class Success<T>(val data: T) : Result<T>()
class Error(val exception: Exception) : Result<Nothing>()
```
在使用 when 表达式时,如果条件分支覆盖了所有可能的情况,则不需要添加 else 分支。例如:
```
fun getResultMessage(result: Result<String>): String = when (result) {
is Success -> "Success: ${result.data}"
is Error -> "Error: ${result.exception.message}"
}
```
阅读全文