标签: java protocol-buffers
我具有生成的反序列化类,并且可以生成示例protobuf(字节缓冲区)。但是我没有.proto文件。我需要停止使用这些生成的类,因为它们来自第三方库,这些库可能不受支持并且不可用。我如何自己解析字节缓冲区?
.proto
我认为:
这怎么办?
答案 0 :(得分:1)
协议缓冲区带有一些非常强大的反映。看一下消息描述符here。
消息描述符包含有关特定消息类型的所有信息,因此您应该能够从那里找出所有可能的字段。您可以使用以下方法直接从原始消息中获取描述符:
your_proto_message.getDescriptorForType()
或使用
ProtoMessageClass.getDescriptor()
如果只需要.proto文件表示形式,则只需在描述符上调用.toProto()。更多信息here。
.toProto()
所以,总结一下:
ProtoMessageClass.getDescriptor().toProto().toString()