将Java类转换为Proto定义的工具

时间:2018-12-15 01:23:26

标签: java protocol-buffers grpc

我有一个现有的JAVA项目,我想将嵌套的类/对象转换为Protocol Buffers.proto定义(反之亦然)。有自动转换它的工具,还是我必须手动进行?

2 个答案:

答案 0 :(得分:1)

使用protobuf转换器。检查:https://github.com/BAData

将域对象转换为Protobuf:

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

您的域类需要使用@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;
}

如果Domain类和proto类的结构不同,则必须编写一个映射器。让我知道您是否需要更多。

答案 1 :(得分:1)

回复上一条 Protobuf 转换器不起作用,此工具仅将 java pojobean 转换为 proto 消息。

如果你想将 java 类的 pojo 代码转换为 .proto 文件,你可以在这里尝试 protosuff' 参考两个git: 检查:[protostuff]:https://github.com/protostuff