在 Java 的 switch 语句里,是可以“判断空(null)”的,但要注意版本和写法。
nullnull 作为 case 的值null 而不处理,会抛 NullPointerExceptionswitch(Java 7+)String s = null;
if (s == null) {
System.out.println("null");
} else {
switch (s) {
case "a":
System.out.println("a");
break;
case "b":
System.out.println("b");
break;
}
}
✅ 正确
❌ 不能写:
switch (s) {
case null: // 编译错误
break;
}
switch,预览 → 正式)从 Java 17 开始(正式于 Java 21),支持:
switch (s) {
case null -> System.out.println("null");
case "a" -> System.out.println("a");
case "b" -> System.out.println("b");
default -> System.out.println("other");
}
✅ 可以直接 case null
✅ 不会抛异常
String s = null;
switch (s) { // NullPointerException
case "a":
break;
}
⚠️ 旧版 switch 直接 NPE
switch (Objects.toString(s, "")) {
case "a": ...
}
if (s == null) {
...
} else {
switch (s) { ... }
}
case nullJava switch 能判空,但老版本要先手动判,新版本可以直接
case null。
如果你告诉我 Java 版本,我可以给你最合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。