Closed FULaBUla closed 10 months ago
如果我的属性和内部类属性都有一个叫 length 的字段,在使用的时候就会导致序列化的时候只序列化了 length 字段,他标记的字段就不会被序列化 代码示例如下:
@MagicClass class A { @MagicField(order = 1) private int length; @MagicField(order = 2, dynamicSizeOf = "length") private String value; @MagicField(order = 3) private int dataLength; @MagicField(order = 4, dynamicSizeOf = "dataLength") private List<B> data; @MagicClass public static class B { @MagicField(order = 1) private int length; @MagicField(order = 2, dynamicSizeOf = "length") private byte[] data; } }
这个在 2.4.0 之前的实现是不会出问题的,换成 2.4.0 之后才出的问题。导致我序列化的时候 length 序列化完了就直接跳到 dataLength 了(但是 length 的值是对的),没有序列化 value 的内容,当我把两个 length 属性的名字改成不一样的之后问题就解决了
如果我的属性和内部类属性都有一个叫 length 的字段,在使用的时候就会导致序列化的时候只序列化了 length 字段,他标记的字段就不会被序列化
代码示例如下:
这个在 2.4.0 之前的实现是不会出问题的,换成 2.4.0 之后才出的问题。导致我序列化的时候 length 序列化完了就直接跳到 dataLength 了(但是 length 的值是对的),没有序列化 value 的内容,当我把两个 length 属性的名字改成不一样的之后问题就解决了