Преобразование хорошо работает для любого конкретного типа Enum, который мы используем, когда Converter определен для определенного типа перечисления. Однако когда я пишу это как общий Spring, он никогда не вызывает код.
Код: Выделить всё
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
// Doesn't work, Spring doesn't appear to allow Converters with type parameters :-(
@Component
public class StringToEnumConverter implements Converter {
@Override
public T convert(String string) {
Type type = ((ParameterizedType)StringToEnumConverter.class.getGenericSuperclass()).getActualTypeArguments()[0];
return (T) Enum.valueOf((Class)type, string.trim().toUpperCase());
}
}
Подробнее здесь: https://stackoverflow.com/questions/195 ... on-service
Мобильная версия