将Protobuf转换为Java

时间:2018-11-25 05:41:26

标签: java protocol-buffers

我知道可以将protobuf消息转换为Java类。我想知道是否可以在不编写翻译器功能的情况下将protobuf消息转换为Java对象?

1 个答案:

答案 0 :(得分:1)

是的,有可能。使用protobuf转换器。检查:https://github.com/BAData

将域对象转换为Protobuf:

ProtoObject protoObject =
    Converter.create().toProtobuf(ProtoObject.class, domainObject);

将Protobuf对象转换为域对象:

DomainObject domainObject = Converter.create().toDomain(DomainObject.class, protoObject)

您的域类需要使用@ProtoClass进行注释,并指定要将域类映射到的原型类。示例:

@ProtoClass(ProtoObject.class)
Class DomainClass{
  @ProtoField
  private String field1;
  @ProtoField(name = "xyz") // in case proto and domain class field have different names
  private String field2;
}

我一直在使用它,它很容易使用,并且节省了很多工作。