[alibaba/fastjson]支持了全局转换枚举类

2024-05-23 894 views
7

现在转换枚举类,有两种方式,一种是使用注解,第二种是使用 ObjectSerializer

但是使用第二种时会有一个问题,就是必须精确到枚举的类名,不能使用它所实现的接口类,这样就会导致我整个工程中所有的枚举类,都需要在这里添加转换器,如下:

serializeConfig.put("精确的类名.class" , new XXX());
serializeConfig.put("AEnum.class" , new XXX());
serializeConfig.put("BEnum.class" , new XXX());
serializeConfig.put("CEnum.class" , new XXX());

现在我想了一种新的方式,比如定义一个基本接口,如下

interface BaseEnum{
   String getCode();
}

然后需要转换的枚举实现这个接口,然后就可以 serializeConfig.put(BaseEnum.class , new XXX()) , 这样就不需要把所有的枚举类型全部写一遍了,一条配置,就可以定义所有的转换类型。

但是原有代码里面的是写死的,而且有一些变量是private,该方法无法重写,所以提取了这个部分代码

详情查看代码,就改了几行代码,不到十行

回答

9

@baimoer 兄弟 同样的需求 找了半天,奇怪怎么会没有 这个代码还没发布,只有自己覆盖了