首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin密封类-为什么编译器不检查所有子类型?

Kotlin密封类-为什么编译器不检查所有子类型?
EN

Stack Overflow用户
提问于 2019-01-24 03:29:12
回答 1查看 159关注 0票数 0

使用sealed classes时,编译器仅检查同一文件中的子类型。

密封类的一大卖点是在使用when表达式时进行详尽的检查。那么,为什么没有实现它呢?

在一个文件中,我有:

代码语言:javascript
复制
class C : B()

在另一个文件中,我有:

代码语言:javascript
复制
sealed class A

open class B : A()

fun switch(input: A) =
    when(input) {
        is B -> Unit
//        is C -> Unit - I expect a compiler error since this is a subtype and it's commented out
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-24 08:54:00

作为Eugene Petrenko commented,编译器所需的is B用例涵盖了B的所有子类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54334380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档