Enum クラス、ColorName は、ColorName json ファイルから jsonschema2pojo を使用して生成されます。そのため、デフォルトでは、Enum クラスには @JsonCreator で注釈が付けられた fromValue メソッドがデフォルトで含まれています。
@JsonCreator
public static ColorName fromValue(String value) {
ColorName constant = constants.get(value);
if (constant == null) {
throw new IllegalArgumentException(value);
} else {
return constant;
}
}
このクラスが json 文字列を Java オブジェクトにデシリアライズするために使用され、json で渡された新しい/間違った Enum 値がある場合、デシリアライズは次のIllegalArgumentException()
エラーで失敗します。
ObjectMapper om = 新しい ObjectMapper(); om.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);
問題は、 @JsonCreator が常に尊重されているためと思われます。これをスキップするか、不明な列挙値を無視するようにデシリアライザーに指示する方法はありますか?