温馨提示×

温馨提示×

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

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

java Switch开关能简化吗

发布时间:2026-07-26 07:58:46 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

可以的,Java 的 switch 在 JDK 14+ 已经被大幅简化,主要有两个方向:


✅ 一、使用 switch 表达式(最推荐,简洁)

传统写法(啰嗦)

int day = 3;
String result;

switch (day) {
    case 1:
        result = "周一";
        break;
    case 2:
        result = "周二";
        break;
    case 3:
        result = "周三";
        break;
    default:
        result = "未知";
}

✅ switch 表达式写法(JDK 14+)

int day = 3;

String result = switch (day) {
    case 1 -> "周一";
    case 2 -> "周二";
    case 3 -> "周三";
    default -> "未知";
};

优点:

  • 没有 break
  • 没有 case 穿透问题
  • 可以直接返回值
  • 更函数式、更简洁

✅ 二、合并多个 case(多个条件一个结果)

int score = 85;

String level = switch (score / 10) {
    case 10, 9 -> "优秀";
    case 8 -> "良好";
    case 7 -> "中等";
    case 6 -> "及格";
    default -> "不及格";
};

✅ 三、yield 返回复杂逻辑(需要多行代码时)

int num = 2;

int result = switch (num) {
    case 1 -> 10;
    case 2 -> {
        int temp = 20;
        yield temp * 2; // 返回结果
    }
    default -> 0;
};

✅ 四、和传统 switch 的对比总结

对比项 传统 switch switch 表达式
break 需要 不需要
返回值 不能 可以
case 穿透 有风险 没有
写法 啰嗦 简洁
推荐度 ⭐⭐ ⭐⭐⭐⭐⭐

✅ 五、注意点

  • JDK 14+
  • -> 是简化核心
  • ❌ 如果项目是 JDK 8,只能用传统写法

✅ 六、如果 JDK 8 无法升级怎么办?

只能用传统 switch,但可以:

  • 提取方法减少重复
  • 使用 Map 替代简单映射
Map<Integer, String> map = Map.of(
    1, "周一",
    2, "周二"
);
String result = map.getOrDefault(day, "未知");

如果你愿意,可以把你当前的 switch 代码贴出来,我可以帮你直接改成最简版本

向AI问一下细节

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

AI