" Using switchCase with null "



我正在尝试使用message==null和message=null和开关大小写,但它给了我语法错误。这是代码

String message = "Happy New Year ;)";
switch (message) {
case null :
break;
case !null :
System.out.println(message);
break;
default :           
}

我已经用if{}else{}做过了,它没有问题,但我不知道switchCase出了什么问题。

if(message == null) {

}else if (message != null) {
System.out.println(message);
}

感谢您的回复❤

Java不支持在switch语句中使用null

Nullswitch情况下的JavaJava文档明确指出:禁止使用null作为switch标签可以防止编写永远无法执行的代码。如果switch表达式是引用类型,例如装箱基元类型或枚举,则如果该表达式在运行时计算为null,则会出现run-time error

您不能在java中执行!null,因为null的类型不是boolean

相反,请尝试在之前检查它,因为您知道如果messagenull,您将不会输入else子句。

String message = "Happy New Year ;)";
if (message == null) {
// error
}
else {
switch (message) {
case x:
y();
break;
default:
System.out.println(message);
break;
}
}

最新更新