在运行时动态解析.proto文本文件以生成描述符

Ank*_*ita 4 java protocol-buffers protoc proto3

我目前正在处理Google Protocol Buffers并需要生成动态消息.我已经定义了如下所示的.proto文件.

message TSInbound
{
  string id = 1;
  map<string,string> state = 2;
  map<string,string> reading =3;
}
Run Code Online (Sandbox Code Playgroud)

AFAIK,我可以使用文件描述符集来创建动态消息.但是,这将涉及使用编译器生成desc文件.我想生成描述符而不编译.proto文件.有没有办法使用自定义.proto文件动态创建消息而不使用protoc?

Ken*_*rda 5

我想你在问:"有没有办法.proto在运行时动态解析文本文件以获取描述符."

.proto解析器被用C++编写.它作为图书馆提供libprotoc.so.理论上,你可以编写一个JNI包装器来在运行时进行解析.但是,.proto文件没有(官方)纯Java解析器.