jprotobuf icon indicating copy to clipboard operation
jprotobuf copied to clipboard

父类与子类字段序列化顺序错误

Open tsingheng opened this issue 1 year ago • 2 comments

@ProtobufClass
public class Base {

    @Protobuf(order = 1, fieldType = FieldType.UINT32)
    private Integer code;

    @Protobuf(order = 2, fieldType = FieldType.STRING)
    private String message;

}

@ProtobufClass
public class Demo extends Base {

    @Protobuf(order = 3, fieldType = FieldType.STRING)
    private String data;

序列化Demo对象预期结果是code第一位,message第二位,data第三位,但实际结果是data在第一位,code在第二位,message在第三位

tsingheng avatar May 18 '23 09:05 tsingheng

不是太明白问题, pb本身是不会特别指定顺序的,他序列化解析只能是依靠 tag数值, 也就是 @Protobuf注释中 的order来指定的。 也测试了你的代码生成的order 是对的

jhunters avatar May 29 '23 02:05 jhunters

不是太明白问题, pb本身是不会特别指定顺序的,他序列化解析只能是依靠 tag数值, 也就是 @protobuf注释中 的order来指定的。 也测试了你的代码生成的order 是对的

能否把父类字段放前面,有利于省略order定义,父类order不会被子类新增字段打乱

Aliang-code avatar Feb 23 '24 09:02 Aliang-code