Java 11(迄今为止的最后一个长期支持版本)三年后,Java 17 LTS 将于 2021 年 9 月发布。是时候快速浏览一下开发人员从 11 升级到 17 后可以享受的新功能了。请注意,在幕后进行了更多改进。本文重点介绍大多数开发人员可以直接使用的功能:
-
开关表达式 ( JEP 361 )
-
文本块 ( JEP 378 )
-
封装工具 ( JEP 392 )
-
instanceof 的模式匹配(JEP 394)
-
记录 ( JEP 395 )
-
密封类 ( JEP 409 )
开关表达式
switch 现在可以返回一个值,就像一个表达式:
// 将给定 planet 的 group 分配给一个变量String group = switch(planet){ case MERCURY, VENUS, EARTH, MARS -> "内行星"; case JUPITER, SATURN, URANUS, NEPTUNE -> "外行星"; }
如果单个 case 的右侧需要更多代码,则可以将其写入块中,并使用yield
以下方法返回值:
// 打印给定 planet 的 group,以及更多信息// 并将给定 planet 的 group 分配给一个变量String group = switch(planet){ case EARTH, MARS -> { System.out.println("内行星"); System.out.println("主要由岩石组成"); yield "内部的"; } case JUPITER, SATURN -> { System.out.printl