2016-04-28 70 views
1

我想将.proto(版本2.5)转换为java pojo。例如如何从现有的protobuf文件创建java pojo?

message Article { 
    optional string title = 1; 
} 

public class Article { 
    private string title; 

    public string getTitle() { 
     return title; 
    } 

    public void setTitle(string title) { 
     this.title = title; 
    } 
} 

但官方protoc不支持生成POJO方式java文件。

是否有任何从.proto文件自动生成pojo的工具?

+0

你试过的时候发生了什么? – f1sh

+0

太多的.proto文件,我需要一个工具。 – light13

回答

0

这SO线程包含文档生成协议缓冲区的Java的“纳米”的变体,这可能只是你正在寻找:Android protobuf nano documentation

否则,对自己产生的代码最简单的方法可能是使用Google开源协议缓冲区代码生成器为您的协议缓冲区生成“descriptors”,然后遍历描述符(也可能使用诸如java poet之类的库)来生成Java代码。

+0

生成文件的Java“nano”变体也不是pojo样式。但解析描述符可能是唯一的方法。 – light13

+0

对于你的例子,生成的nano代码应该几乎匹配......有什么区别使它不适合你的情况? –

+0

在我的情况下,有一些proto文件来描述数据结构,但我不想依靠protobuf来编译java,因为真正的数据格式是json。但是,感谢兄弟,我写了一个粗略的脚本来描述符生成pojo,它的工作原理。 – light13