如何确定 Protobuf 对象的 protobuf 版本?
How to determine protobuf version of Protobuf object?
我的项目假定 Proto3 对象作为输入。
但是,有时用户会提供 Proto2 对象作为输入。在这些情况下,我们希望抛出异常,因为我们的代码仅适用于 Proto3 类.
我们如何检查提供的输入 Protobuf 对象是 Proto2 还是 Proto3?
检查方法是否存在或默认值是一种 Hack。
是否有任何正确的方法来检查 Protobuf 对象的版本?
需要在 .proto 文件中定义协议格式。 .proto 文件以
开头
syntax = "proto3";
我找到了答案:
proto_verison = protobufObject.getDescriptorForType().getFile().getSyntax().name()
检查它是否 "PROTO3"
我的项目假定 Proto3 对象作为输入。 但是,有时用户会提供 Proto2 对象作为输入。在这些情况下,我们希望抛出异常,因为我们的代码仅适用于 Proto3 类.
我们如何检查提供的输入 Protobuf 对象是 Proto2 还是 Proto3?
检查方法是否存在或默认值是一种 Hack。 是否有任何正确的方法来检查 Protobuf 对象的版本?
需要在 .proto 文件中定义协议格式。 .proto 文件以
开头 syntax = "proto3";
我找到了答案:
proto_verison = protobufObject.getDescriptorForType().getFile().getSyntax().name()
检查它是否 "PROTO3"