温馨提示×

温馨提示×

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

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

java switch开关可以空值吗

发布时间:2026-10-06 11:37:48 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

在 Java 里,switch 的表达式(要匹配的值)不能是 null,否则会抛出 NullPointerException。

1. 传统 switch(Java 7+ 支持 String)

String s = null;
switch (s) {  // ❌ 运行时会 NullPointerException
    case "a":
        break;
}

2. switch 表达式(Java 14+)

同样不允许 null:

String s = null;
int i = switch (s) {  // ❌ NullPointerException
    case "a" -> 1;
    default -> 0;
};

3. 正确的处理方式

先判空,再进 switch:

if (s == null) {
    // 处理 null 情况
} else {
    switch (s) {
        case "a":
            break;
    }
}

或者使用 default 代替“空值逻辑”(但前提是 值本身不为 null)。

4. 总结

  • ✅ switch 的 case 值可以是任意合法常量
  • ❌ switch 的 表达式(匹配对象)不能为 null
  • ✅ 必须在使用 switch 前自行处理 null

如果你是用 枚举 / int / 包装类型 的 switch,我也可以帮你分析具体场景。

向AI问一下细节

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

AI
助
手