JDK14中的switch

前言

switchJDK12之后,语法得到改善,不过JDK12是预览属性,后面在JDK14转正

switch语法

JDK12之前,switch写法是这样

csharp 复制代码
public class SwitchDemo {

    public static void main(String[] args) {
        int a = 1;
        switch (a) {
            case 1: {
                System.out.println(1);
                break;
            }
            case 2: {
                System.out.println(2);
                break;
            }
            default : {
                System.out.println("aaa");
                break;
            }
        }
    }
}

但是JDK12之后对switch进行改进和预览,可以这么写

arduino 复制代码
public class SwitchDemo {

    public static void main(String[] args) {
        int a = 1;
        int data = switch (a) {
            case 1 -> 1;
            case 2 -> 2;
            default -> throw new IllegalStateException("Unexpected value: " + a);
        };
        System.out.println(data);
    }
}

也可以这么写

csharp 复制代码
public class SwitchDemo {

    public static void main(String[] args) {
        int a = 1;
        switch (a) {
            case 1 -> {
                a = a + 1;
                System.out.println(a);
            }
            case 2 -> {
                a = a + 2;
                System.out.println(2);
            }
            default -> throw new IllegalStateException("Unexpected value: " + a);
        }
        ;
        System.out.println(data);
    }
}

不用加break

总结

switch语法在JDK14之后得到转正,新的 Switch 表达式允许在 switch 块中使用 -> 箭头符号来代替 casebreak 关键字,使代码更加简洁明了

相关推荐
2401_8734794026 分钟前
运营活动被薅羊毛怎么防?用IP查询+设备指纹联动封堵漏洞
java·网络·tcp/ip·github
ShiJiuD66688899927 分钟前
大事件板块一
java
摇滚侠27 分钟前
@Autowired 和 @Resource 的区别
java·开发语言
Wy_编程36 分钟前
go语言中的结构体
开发语言·后端·golang
SeaTunnel43 分钟前
(八)收官篇 | 数据平台最后一公里:数据集成开发设计与上线治理实战
java·大数据·开发语言·白鲸开源
吴声子夜歌2 小时前
Java——线程的基本协作机制
java·线程协作
谙弆悕博士2 小时前
【附C++源码】从零开始实现 2048 游戏
java·c++·游戏·源码·项目实战·2048
独自归家的兔3 小时前
OCPP 1.6 协议详解:GetLocalListVersion 获取本地列表版本指令
java·后端·物联网·spring·ocpp1.6
Apache RocketMQ4 小时前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq
xiaoming00184 小时前
JAVA项目打包部署运维全流程(多服务、批量)
java·linux·运维