http://tianya23.blog.51cto.com/1081650/582256
获取当前class的所有字段,接着获取父类的所有字段。序列化的时候,所有字段都放在一个ArrayList里,然后依次写入到二进制流中,反序列化的时候,所有字段放在了一个HashMap里,HashMap的key不能重复,悲剧就出现了,如果子类和父类有同名的字段就会有问题,父类的值会把子类的值覆盖掉。
看看反序列化时,JavaDeserializer的getFieldMap方法,父类字段会把子类字段覆盖掉。
网友评论