我目前正致力于Google协议缓冲区,需要生成动态消息。我已经定义了如下所示的.proto文件。
message TSInbound
{
string id = 1;
map<string,string> state = 2;
map<string,string> reading =3;
}
AFAIK,我可以使用文件描述符集来创建动态消息。但是,这将涉及使用编译器生成desc文件。我想生成描述符而不编译.proto文件。有没有办法使用自定义.proto文件动态创建消息而不使用protoc?
答案 0 :(得分:5)
我想你在问:“有没有办法在运行时动态解析文本.proto
文件以获取描述符。”
.proto
解析器是用C ++编写的。它可以作为库libprotoc.so
使用。理论上,你可以编写一个JNI包装器来在运行时进行解析。但是,.proto
文件没有(官方)纯Java解析器。