在 Java 里,switch 的表达式(要匹配的值)不能是 null,否则会抛出 NullPointerException。
switch(Java 7+ 支持 String)String s = null;
switch (s) { // ❌ 运行时会 NullPointerException
case "a":
break;
}
switch 表达式(Java 14+)同样不允许 null:
String s = null;
int i = switch (s) { // ❌ NullPointerException
case "a" -> 1;
default -> 0;
};
先判空,再进 switch:
if (s == null) {
// 处理 null 情况
} else {
switch (s) {
case "a":
break;
}
}
或者使用 default 代替“空值逻辑”(但前提是 值本身不为 null)。
switch 的 case 值可以是任意合法常量switch 的 表达式(匹配对象)不能为 nullswitch 前自行处理 null如果你是用 枚举 / int / 包装类型 的 switch,我也可以帮你分析具体场景。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。