Java 17中的switch表达式得到了改进,可以直接用于模式匹配。在switch表达式中,可以使用case标签后跟模式。 代码语言:java 复制 Stringresult=switch(obj){caseStrings->"字符串:"+s;caseIntegeri->"整数:"+i;default->"未知类型";}; 2.2 实际应用 继续以上面的动物类为例,我们可以使用switch表达式进行模式匹配: ...
Java JDK 17新特性:全新的switch表达式, 视频播放量 56、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 学亮编程手记, 作者简介 视频课件详见账号同名CSDN博客,相关视频:Java JDK 17新特性:私有接口方法,【2025新版】Java后端零基础快速上手(
switch表达式(case->):当使用case->{}代码块时,需要显示的yield返回值作为switch的返回值。int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> { System.out.println(6); yield 6; } case TUESDAY -> { System.out.println(7); yield 7; } case THURSDAY...
public int getByJDK17(Week week) { // 1, 现在的switch变成了表达式,可以返回值了,而且支持yield和->符号来返回值 // 2, 再也不用担心漏写了break,而导致出问题了 // 3, case后面支持写多个条件 return switch (week) { case null -> -1; case MONDAY -> 1; case TUESDAY -> 2; case WEDNESD...
case条件中直接涵盖了类型的判断和类型的转换 每个case的处理逻辑用Lambda语法来实现,可以免去break语句 另外,要注意的是,对于 switch 表达式中模式匹配的功能,JDK 17 中的实现还是 preview 版本,所以了解为主,目前还不推荐用于正式环境,不排除后续有进一步改进的可能。
switch switch 语言主要是控制表达式和多个 case 标签的组合。和上面说到的 if 不同的是, switch 的语言后面对应的表达式有类型的限制。 并且不同的 JDK 版本也不一样。 对于 Java 7 以下, 只有四种数据类型。分别是:byte、short、char、int。对于枚举类型和字符串类型是从 Java 7 开始支持的。switch 的语法...
模式匹配--switch 表达式和语句 1、案例 #模式匹配public static double getPerimeter(Shape shape) throws IllegalArgumentException {if (shape instanceof Rectangle r) {return 2 * r.length() + 2 * r.width();} else if (shape instanceof Circle c) {return 2 * c.radius() * Math.PI;} else {...
1.1 jdk17的下载 1.2 相关文档 二、新语法与新类库 2.1 Switch表达式增强 2.2 文本块(Text Blocks) 2.3 instanceof的模式匹配 2.4 密封类(Sealed Classes) 2.5 Records 2.6 JVM常量API(JVM Constants API) 2.7 重写Socket底层API 2.8 JDK飞行记录事件流(JFR Event Streaming) 2.9 优化空指针异常信息(Helpful Null...
我们在java 12和13中讨论过的任何switch语句和特性,都是预览特性,需要将flag -enable-preview设置为true。但是Java 14让所有的特性都不再是预览特性。标志-enable-preview在java 14启动时不需要设置。并且switch语句已经演变成switch表达式!#Java 17: Switch语句/表达式: ...