在Java中的Switch语句中使用整数类型
我在用Java为Android应用程序编写一些简单的代码,但出现了这些错误。
case expressions must be constant expressions
而private 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