我目前正在研究 Google Protocol Buffers,需要生成动态消息。我已经定义了如下所示的 .proto 文件。
message TSInbound
{
string id = 1;
map<string,string> state = 2;
map<string,string> reading =3;
}
据我所知,我可以使用文件描述符集来创建动态消息。但是,这将涉及使用编译器生成 desc 文件。我想在不编译 .proto 文件的情况下生成描述符。有没有一种方法可以使用自定义的 .proto 文件而不使用 protoc 来动态创建消息?
最佳答案
我想你在问:“有没有办法在运行时动态解析文本 .proto
文件以获取描述符。”
.proto
解析器是用 C++ 编写的。它作为库 libprotoc.so
可用。从理论上讲,您可以围绕它编写一个 JNI 包装器以在运行时进行解析。但是,.proto
文件没有(官方的)纯 Java 解析器。
关于java - 在运行时动态解析 .proto 文本文件以生成描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36074849/