报告没有属性并且可被转换为 sealed 接口的 sealed 类。

如果类型层次结构不需要共享状态,sealed 接口通常比 sealed 类更受欢迎,因为它们允许实现类以扩展其他类。

示例:


sealed class Result<out T : Any>
class Success<T : Any>(val result: T) : Result<T>()
class Error(val throwable: Throwable) : Result<Nothing>()

在应用快速修复后:


sealed interface Result<out T : Any>
class Success<T : Any>(val result: T) : Result<T>
class Error(val throwable: Throwable) : Result<Nothing>