在Java中启用枚举:不合格的枚举常量

时间:2017-09-15 14:00:03

标签: java enums

我有这个枚举:

public class RemoteUnitType implements Serializable {

    public enum deviceVersion {
        ANDROID_AT1, 
        ANDROID_AT1_PRO, 
        ANDROID_AT5,
        ANDROID_AK1
    }

我想在Enum上创建一个开关,就像这个

switch (remoteUnit.getDeviceVersion()) {
            case RemoteUnitType.deviceVersion.ANDROID_AK1 :
            break;  
}

但我收到了这个错误:

The qualified case label RemoteUnitType.deviceVersion.ANDROID_AK1 must be replaced with the unqualified enum constant 

2 个答案:

答案 0 :(得分:5)

您无需符合资格,只需使用枚举标签:

switch (remoteUnit.getDeviceVersion()) {
            case ANDROID_AK1 :
            break;  
}

答案 1 :(得分:0)

我不是语言律师,但它似乎遵循语言定义。根据我的理解,EnumConstantName是您在枚举的定义中使用的。 https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.11

SwitchLabel:

case ConstantExpression :
case EnumConstantName :
default :