Кажется, что аннотация @JsonAnySetter
работает только с ключами типа String
или Object
.
Обнаруженный мной обходной путь заключается в перегрузке метода addProperty
типом ключа как String, а затем преобразовать ключ String в тип Enum и вызвать метод addProperty
с ключом Enum.
Использовать аннотацию @JsonAnySetter
для перегруженного метода.
Map<MyEnum, String> mymap = new EnumMap<>(MyEnum.class);
public void addProperty(MyEnum key, Object value) {
mymap.put(key, value);
}
@JsonAnySetter
private void addProperty(String key, Object value) {
addProperty(MyEnum.valueOf(key), value);
}
Обратите внимание, что я сделал перегруженный метод addProperty
private
, поскольку я не хочу показывать версию этого метода.
@JsonAnySetter
аннотация работает с private
методами.