代码拉取完成,页面将自动刷新
目前发现,普通 http 请求时,结构化的举枚处理仍不太方便。引用 ConverterFactory 可解决此问题:
示例:
@Component
public class StringToEnumConverterFactory implements ConverterFactory<String, Enum> {
@Override
public <T extends Enum> Converter<String, T> getConverter(Class<T> targetType) {
return new EnumTypeConverter(targetType);
}
public static class EnumTypeConverter<T extends Enum> implements Converter<String, T> {
private EnumWrap enumWrap;
public EnumTypeConverter(Class<T> targetType){
this.enumWrap = new EnumWrap(targetType);
}
@Override
public T convert(String value) throws ConvertException {
Enum value2 = enumWrap.getCustom(value);
if(value2 != null){
return (T)value2;
}
return (T)enumWrap.get(value);
}
}
}
应用效果:
@Controller
public class DemoController {
@Mapping("demo")
public String demo(DemoType cat) {
return cat.title;
}
}
public enum DemoType {
Demo1(1, "demo1"),
Demo2(2, "demo2");
@Use //表示使用此字段(只是示例,具体可与 json 框架的注解连动)
public int code;
public String title;
DemoType(int code, String title) {
this.code = code;
this.title = title;
}
}