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

我在用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

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

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

以上是 在Java中的Switch语句中使用整数类型 的全部内容, 来源链接: utcz.com/qa/404027.html

回到顶部