kotlin 之 Sealed Class
通常情况下使用枚举来封装有限的集合值,kotlin提供了新的解决方法 Sealed Class 密封类
/**
* 密封类,封装类
* 1、通常限定一些有限集合的状态值,如
* 网络状态:成功,失败
* 账户状态:vip,普通
* 2、与when配合使用,无需if-else
*/
一、定义
sealed class Result<out T : Any> { data class Success<out T : Any>(val data: T) : Result<T>() data class Error(val exception: Exception) : Result<Nothing>() }
二、使用
private fun testSealed() { val result = if (true) { Result.Success("success") } else { Result.Error(Exception("error")) } when (result) { is Result.Success -> print(result.data) is Result.Error -> print(result.exception) } }