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