我有以下枚举:
public enum ChangeMode {
None(1), Add(2), Update(3), Delete(4);
// String value
public String getStringValue() {
return name();
}
public static ChangeMode getEnumValue(String v) {
return valueOf(v);
}
public static ChangeMode getEnumValue(int intValue) {
for (ChangeMode x : values())
if (Objects.equals(x.intValue, intValue))
return x;
return null;
}
// Int value
private int intValue;
private ChangeMode(int intValue) {
this.intValue = intValue;
}
public int getIntValue() {
return this.intValue;
}
}
请注意,枚举值从1-4开始,而不是0-3。
我使用的是Wildfly和Jackson。
当我从客户端JSON获取值4时(使用HTTP POST)我收到以下错误:
无法从数字构造com.ta9.enums.ChangeMode的实例 value(4):法律指数范围外的指数值[0..3] at [来源: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@55a6e779; line:770,column:26](通过参考链: