如何确定 Protobuf 对象的 Protobuf 版本?

3

我的项目假设输入为Proto3对象。 但是,有时用户提供的输入是Proto2对象。在这些情况下,我们希望抛出异常,因为我们的代码只与Proto3类一起使用。

我们如何检查提供的Protobuf对象是Proto2还是Proto3?

检查方法是否存在或默认值有点“hack”的感觉。 是否有任何适当的方法来检查Protobuf对象的版本?

2个回答

1
我找到了答案:

proto_verison = protobufObject.getDescriptorForType().getFile().getSyntax().name()

检查是否为“PROTO3”


1
需要在.proto文件中定义您的协议格式。 .proto文件以以下内容开头:
 syntax = "proto3";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接