使用密封类配合switch表达式可实现编译期穷尽性检查,要求父类用sealed声明并明确permits子类,各子类须在同一模块且声明为final/sealed/non-sealed,switch必须覆盖所有子类及null,when子句不替代case覆盖。
用密封类配合 switch 表达式,能让编译器在编译阶段就确认你是否处理了所有可能的子类型——不需要 default 分支,也能保证逻辑完整、类型安全。
这是穷尽性检查的前提。父类型(类或接口)要用 sealed 声明,并通过 permits 明确列出所有允许的直接子类型。
switch 的目标表达式类型要是密封父类型;每个 case 直接写子类名 + 变量绑定,Java 自动完成类型检查和字段解构。
模式匹配 switch 不会忽略 null,也不默认跳到 default。即使输入理论上非空,也得显式写 case null。
when 子句用于补充判断,但它不影响编译期穷尽性检查——只看类型是否全覆盖。
双增能决胜高光·利昂内尔·梅西实战与抽取指南
独家:悠星大陆『Elysium Expanse』BD构筑二次元MMORPG: Osiris Reborn 进度系统详细说明及全新截图公开
杰森·莫玛饰演的布兰卡果然在《街头霸王6》电影中使出了X光骨骼电击招式
魂坠深境Boss打法详细说明魂坠深境高难度Boss通关攻略
魂坠深境乐师玩法详细说明魂坠深境乐师入门指南与实战技巧
烈火皇城哪个职业最强烈火皇城三大职业详细对比分析