我正在尝试使用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
Null
在switch
情况下的JavaJava文档明确指出:禁止使用null
作为switch
标签可以防止编写永远无法执行的代码。如果switch
表达式是引用类型,例如装箱基元类型或枚举,则如果该表达式在运行时计算为null
,则会出现run-time error
您不能在java中执行!null
,因为null
的类型不是boolean
。
相反,请尝试在之前检查它,因为您知道如果message
是null
,您将不会输入else
子句。
String message = "Happy New Year ;)";
if (message == null) {
// error
}
else {
switch (message) {
case x:
y();
break;
default:
System.out.println(message);
break;
}
}