【问题标题】:" Using switchCase with null " [duplicate]“使用带有 null 的 switchCase” [重复]
【发布时间】:2021-01-13 18:34:27
【问题描述】:

我正在尝试将 message==null 和 message!=null 与 switch case 一起使用,但它给了我语法错误。 这是代码

    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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢你的回答。
    【解决方案2】:

    你不能在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;
      }
    }
    

    【讨论】:

    • 仍然错误,因为 null 关键字,但我认为我应该使用 if_statement 。
    • @TwanaStackoverflow 已编辑!现在应该可以了!
    猜你喜欢
    • 2017-02-04
    • 2021-08-04
    • 2022-12-29
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多