2017-09-20 13 views
1

내 프로젝트는 Proto3 Objects를 입력으로 간주합니다. 그러나 때때로 사용자는 Proto2 Object를 입력으로 제공합니다. 이 경우 코드가 Proto3 클래스에서만 작동하므로 예외를 throw하려고합니다.Protobuf 객체의 protobuf 버전을 결정하는 방법은 무엇입니까?

입력 된 Protobuf 객체가 Proto2 또는 Proto3인지 어떻게 확인할 수 있습니까?

메소드 존재 여부 또는 기본값 확인은 일종의 핵입니다. Protobuf Object의 버전을 확인할 수있는 적절한 방법이 있습니까?

답변

1

.proto 파일에서 프로토콜 형식을 정의해야합니다. .proto 파일은 답을 찾을 I

syntax = "proto3"; 
1

로 시작

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

확인의 "PROTO3"

경우