似乎protov2保留了未知字段。是否存在用于执行相反操作的api /界面,即跳过不需要的字段
例如
message C {
required int32 id = 1;
required string tag = 2;
}
message B {
required int32 id = 1;
optional bytes data = 2;
}
message A {
repeated messageC tagInfo = 1;
repeated messageB messages = 2;
}
proto2中是否有一种方法可以只读取messageC而不从messageA的序列化版本中读取messageB?到目前为止,似乎如果我要创建另一个较浅的messageA版本,则仅使用具有相同字段编号的tagInfo来创建messageD ...然后,仍将解析消息并将其存储为“未知”字段。
但是我只想基于tagInfo中存在的一些条件信息来读取消息。 这可能吗 ?我是否需要使用CodedInputStream编写自己的解析器..如果是这样,如何在Java中实现?