[转载] spring mvc自定义int枚举转换器
參考鏈接: Java中具有自定義值的枚舉
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>? ?
??
?public class MyIntegerEnumConverters {
? ? @WritingConverter
? ? public static class EnumToIntegerConverter implements Converter<IntEnumConvertable, String> {
? ? ? ? @Override
? ? ? ? public String convert(IntEnumConvertable source) {
? ? ? ? ? ? return String.valueOf(source.getValue());
? ? ? ? }
? ? }
}
?
?public class MyIntegerToEnumConverterFactory implements ConverterFactory<String, Enum> {
? ? @Override
? ? public <T extends Enum> Converter<String, T> getConverter(Class<T> targetType) {
? ? ? ? Class<?> enumType = targetType;
? ? ? ? while (enumType != null && !enumType.isEnum()) {
? ? ? ? ? ? enumType = enumType.getSuperclass();
? ? ? ? }
? ? ? ? if (enumType == null) {
? ? ? ? ? ? throw new IllegalArgumentException(
? ? ? ? ? ? ? ? ? ? "The target type " + targetType.getName() + " does not refer to an enum");
? ? ? ? }
? ? ? ? return new IntegerToEnum(enumType);
? ? }
?
? ? @ReadingConverter
? ? public static class IntegerToEnum<T extends IntEnumConvertable> implements Converter<String, IntEnumConvertable> {
? ? ? ? private final Class<T> enumType;
?
? ? ? ? public IntegerToEnum(Class<T> enumType) {
? ? ? ? ? ? this.enumType = enumType;
? ? ? ? }
?
? ? ? ? @Override
? ? ? ? public IntEnumConvertable convert(String source) {
? ? ? ? ? ? for (T t : enumType.getEnumConstants()) {
? ? ? ? ? ? ? ? if (t instanceof IntEnumConvertable) {
? ? ? ? ? ? ? ? ? ? if (t.getValue() == Integer.valueOf(source)) {
? ? ? ? ? ? ? ? ? ? ? ? return t;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? return null;
? ? ? ? }
? ? }
?
?
}
?
?public interface IntEnumConvertable extends Serializable {
? ? int getValue();
}
?
?registry.addConverter(new MyIntegerEnumConverters.EnumToIntegerConverter());
registry.addConverter(new MyIntegerToEnumConverterFactory.IntegerToEnum(null));
registry.addConverterFactory(new MyIntegerToEnumConverterFactory());
?
??
? ?
? ??
? ?
??
?
轉(zhuǎn)載于:https://my.oschina.net/stategrace/blog/749572
總結(jié)
以上是生活随笔為你收集整理的[转载] spring mvc自定义int枚举转换器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle实验数据库和表,1oracl
- 下一篇: [转载] c++多态与java多态性_J