密封类修饰符在Java中如何帮助模式匹配?
最新的Java发行版15提供了新的功能-密封类修饰符在Java中如何帮助模式匹配?,java,pattern-matching,sealed,sealed-class,Java,Pattern Matching,Sealed,Sealed Class,最新的Java发行版15提供了新的功能-sealedmodifier。我看了一遍,上面写着: 密封类和接口限制其他类或接口可以扩展或实现它们 目标: 允许类或接口的作者控制负责实现它的代码 提供一种比访问修饰符更具声明性的方式来限制超类的使用 通过支持模式的详尽分析,支持模式匹配的未来方向 第一个和第二个很简单,但第三个很难遵循。有人能解释一下sealed对模式匹配有什么帮助吗?制作一个类sealed意味着编译器在编译时知道实现类的完整列表。因此,它可以确认(例如)已处理了所有可能的匹配 将
sealed
modifier。我看了一遍,上面写着:
密封类和接口限制其他类或接口可以扩展或实现它们
目标:
- 允许类或接口的作者控制负责实现它的代码
- 提供一种比访问修饰符更具声明性的方式来限制超类的使用
- 通过支持模式的详尽分析,支持模式匹配的未来方向
第一个和第二个很简单,但第三个很难遵循。有人能解释一下
sealed
对模式匹配有什么帮助吗?制作一个类sealed
意味着编译器在编译时知道实现类的完整列表。因此,它可以确认(例如)已处理了所有可能的匹配
将其视为类似于检查异常:在编译时,编译器确保以某种方式处理可能抛出的每个检查异常(通过捕获或通过throws
子句),因此可以保证流控制在形式上是一致的。所以我猜您不明白是什么“通过支持模式的详尽分析。”意思是说?你读过“描述”部分的例子吗?有一个关于模式匹配的例子很好地解释了这一点。