在工作中遇到这样一个场景
Map<KeyType,Map<String,String>> enumMap = Maps.newHashMap();
KeyType 是一个枚举
序列化之后 就只剩下了一个枚举名称
如
{"@type":"java.util.HashMap","mail":{"@type":"java.util.HashMap","valKey_2":"val_val_2","valKey_1":"val_val_1"}}
这样反序列化之后变成 实际就成了
Map<String,Map<String,String>> 这样直接拿来使用的时候 就会get 到null
请教能不能像bean 一样 保留其Type信息?
Map<KeyBean,Map<String,String>> beanMap
这样的序列化之后,key的Type信息是保留了的
{"@type":"java.util.HashMap",{"@type":"com.test.KeyBean","money":10,"name":"just bean","order":3}:{"@type":"java.util.HashMap","valKey_2":"val_val_2","valKey_1":"val_val_1"}}
5条答案
按热度按时间6mw9ycah1#
当前的设计无法保存Enum的数据类型
mkshixfv2#
程序里map的key别用enum,直接用string吧,
改起来也容易。
qyuhtwio3#
引用的jar ,基本改不动。 看了下似乎 Serializer 增加自定义也做不了 ,Serializer 似乎都是value进行处理,源码没完全搞明白,请教有无办法
gwo2fgha4#
mark
flvtvl505#
mark