Spring custom converter for all Enums

前端 未结 2 2057
孤城傲影
孤城傲影 2020-12-29 06:21

I\'ve built many Enum classes with int getID() and MyEnum withID(int) methods that allow me to dedicate an ID to the enum values for persistence pu

2条回答
  •  长发绾君心
    2020-12-29 06:46

    Extended from WebMvcConfigurerAdapter

    @Override
    @SuppressWarnings("unchecked")
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverterFactory(new ConverterFactory() {
            @Override
            public  Converter getConverter(Class targetType) {
                return source -> {
                    try {
                        return (T) Enum.valueOf(targetType, source);
                    } catch (Exception e) {
                        return targetType.getEnumConstants()[Integer.parseInt(source)];
                    }
                };
            }
        });
        super.addFormatters(registry);
    }
    

提交回复
热议问题