温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java switch开关新特性有哪些

发布时间:2026-10-06 12:41:53 来源:亿速云 阅读:87 作者:小樊 栏目:编程语言

在 Java 12 及以后版本,switch 语句和表达式有了不少新特性,主要目标是更简洁、更安全、更函数式。下面按版本和特性来总结:


一、Java 12 / 13(预览特性)

1️⃣ switch 表达式(Switch Expressions)

传统 switch 是语句,新特性允许作为表达式返回值。

旧写法(语句)

int day = 2;
String type;
switch (day) {
    case 1:
    case 2:
    case 3:
        type = "工作日";
        break;
    default:
        type = "休息日";
}

新写法(表达式)

String type = switch (day) {
    case 1, 2, 3 -> "工作日";
    default -> "休息日";
};

✅ 特点:

  • 使用 ->
  • 不需要 break
  • 必须有返回值(覆盖所有情况)

2️⃣ 箭头语法(Arrow Case)

switch (x) {
    case 1 -> System.out.println("一");
    case 2 -> System.out.println("二");
    default -> System.out.println("其他");
}

✅ 不会“贯穿”(fall-through)


二、Java 14(正式特性)

3️⃣ yield 返回值

在复杂逻辑中返回结果:

int result = switch (x) {
    case 1:
        yield 10;
    case 2:
        yield 20;
    default:
        yield 0;
};

✅ yield 用于表达式式 switch


三、Java 17(增强)

4️⃣ switch 匹配增强(Pattern Matching 预览)

可以匹配类型:

Object obj = "hello";

String result = switch (obj) {
    case Integer i -> "整数: " + i;
    case String s -> "字符串: " + s;
    default -> "未知";
};

✅ 属于 Pattern Matching for switch(仍在演进)


四、Java 21(重要更新)

5️⃣ 模式匹配 switch(正式)

switch (obj) {
    case Integer i when i > 0 -> ...
    case String s -> ...
    case null -> "null值";
    default -> ...
}

✅ 新增:

  • when 守卫条件
  • 支持 null

五、对比总结表

特性 版本 说明
switch 表达式 Java 14 可作为表达式
箭头语法 Java 12 -> 简化
yield Java 13 返回值
类型匹配 Java 17+ case Type t
when 守卫 Java 21 条件判断
null 支持 Java 21 case null

如果你愿意,我可以:

  • 给你 传统 vs 新写法对照示例
  • 讲 什么时候该用 switch 表达式
  • 或结合 枚举 / 状态机 实战示例
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手