【发布时间】:2011-08-30 10:16:59
【问题描述】:
我正在尝试在 Android 应用程序中使用 switch 语句,我必须检查一个整数是否等于 Enum 的某些值。代码如下:
public enum RPCServerResponseCode{
E_INCORRECT_LOGIN(4001),
E_ACCOUNT_DISABLED(4002),
E_ACCOUNT_NOT_ACTIVE(4003);
private int value;
private RPCServerResponseCode(int i) {
this.value=i;
}
public static RPCServerResponseCode getByValue(int i) {
for(RPCServerResponseCode dt : RPCServerResponseCode.values()) {
if(dt.value == i) {
return dt;
}
}
throw new IllegalArgumentException("No datatype with " + i + " exists");
}
}
}
我的 switch 语句如下所示:
int errorCode;
switch(errorCode){
case RPCServerResponseCode.E_INCORRECT_LOGIN :
{
if (user.isAuthenticated)
{
// logout before login
}
break;
}
case RPCServerResponseCode.E_ACCOUNT_NOT_ACTIVE:
{
if (user.isAuthenticated)
{
//logout
}
break;
}
}
}
但我收到错误消息:“类型不匹配:无法从 RPCCommucatorDefines.RPCServerResponseCode 转换为 int”。 有什么建议可以解决这个问题吗?提前谢谢!!!
【问题讨论】:
-
谢谢你的评论。其实我没有看到这个问题。
标签: java enums case switch-statement