概念exhaustiveness checking / 穷尽性模式匹配
穷尽性检查
Java 编译器对密封类型层次进行完整子类型覆盖检查的机制,当 switch 缺少某个 permitted 子类型分支时在编译期报错,避免运行时遗漏。
时间轴 (近 90 天)
10月18日
结合密封类,编译器能够验证 switch 的所有 permitted 子类是否都被处理,遗漏子类型会导致编译错误(穷尽性检查)。
待验证50%
10月18日
穷尽性检查只对密封层次有效;对于普通开放接口,编译器仍要求 default 分支。
待验证50%
10月18日
穷尽性分析在编译期完成,不依赖运行时反射,因此不会带来性能开销。
待验证50%
10月18日
在 switch 中加入 default 分支会关闭穷尽性检查,导致新增子类型不再触发编译错误;因此使用密封类时应避免不必要的 default。
待验证50%