我有这个枚举:
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
答案 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 :