当前位置: 首页 > 面试题库 >

在Java中的Switch语句中使用整数类型

盖泽宇
2023-03-14
问题内容

我在用Java为Android应用程序编写一些简单的代码,但出现了这些错误。

case expressions must be constant expressionsprivate static final Integer恒定

private static final Integer INVALID_USER = 901;
private static final Integer SENDING_FAILED = 902;
private static final  Integer OK = 903;
/*
 *
 *  And some more project related declaration...
 *
 */


        switch (responseCode){
            case INVALID_USER:

                    // logout
                    break;

            case SENDING_FAILED:

                    //resend request
                    break;

            case OK:
                    break;
        }

这是因为我使用过Integer Type,然后将类型更改为int,问题就解决了

我的问题是为什么我们不能将其Integer用作案例表达。Docs说:“开关适用于byte,short,char和int基本数据类型。它还适用于枚举类型(在EnumTypes中讨论),String类以及一些包装某些基本类型的特殊类:Character,字节,短整数和整数”虽然变量是常量,但我读了这个问题,但没有得到任何帮助


问题答案:

常量表达式 在switch语句(第14.11节)中用作大小写标签,对于赋值转换(第5.2节)和.....具有特殊意义。

Definition of Constant Expression §15.28

编译时常量表达式是表示 原始类型 的值或不会突然完成的 String 的表达式。

现在,在上述情况下的编译器是寻找 常量表达式 ,它应该知道要在规定的编译time.As编译器Integer其实并不是编译器常数表达式。



 类似资料:
  • 问题内容: 由于各种业务原因,我想在我的一个类中保存一些静态ID。它们本来是但我想将它们更改为,以便可以对它们进行平等处理(即避免使用NPE) 当我将它们更改为Integer时,我的switch语句中出现错误。该文件说,整数应该是交换机内确定。 报价 [Switch]还适用于枚举类型(在Enum Types中讨论),String类和一些包装某些基本类型的特殊类:Character,Byte,Sho

  • 本文向大家介绍Java中的Switch语句,包括了Java中的Switch语句的使用技巧和注意事项,需要的朋友参考一下 switch语句允许针对值列表对变量进行相等性测试。每个值称为一个案例,并针对每种情况检查要打开的变量。首先让我们看一下语法- 以下是适用于Java中switch语句的规则- switch语句中使用的变量只能是整数,可转换整数(字节,短整数,字符),字符串和枚举。 开关内可以有任

  • 问题内容: 在Swift中,您可以使用’is’检查对象的类类型。如何将其合并到“ switch”块中? 我认为这是不可能的,所以我想知道解决此问题的最佳方法是什么。 问题答案: 您绝对可以在一个块中使用。请参阅Swift编程语言中的“对Any和AnyObject进行类型转换”(尽管当然不限于此)。他们有一个广泛的例子:

  • 本文向大家介绍详解java中if语句和switch的使用,包括了详解java中if语句和switch的使用的使用技巧和注意事项,需要的朋友参考一下 if语句 说起if语句,那么不得不提起三元运算符 a>b?c=0:c=1; 如果a>b结果为true,那么c=0,为false,c=1 那么下面看下if语句 if(a>b)c=0; 如果a>b为true,那么c=0 是不是觉得很像,但是还是觉得有一点不