我已经导入了另一个原型,它的包装名称与我的不同。对于来自其他包的消息的使用,已使用包名访问该消息。
例如:
other.proto
package muthu.other;
message Other{
required float val = 1;
}
myproto.proto
package muthu.test;
import "other.proto";
message MyProto{
required string str = 1;
optional muthu.other.Other.val = 2;
}
有没有办法直接使用 muthu.other 包的 val ,例如可选的val = 2; ,而不是使用 muthu .other.Other.val ?
无法找到有关此问题的任何帮助文档。帮助我。
答案 0 :(得分:6)
如果包名称相同,那么您可以从字段声明中省略包名称,否则没有其他方法。如果你可以通过指定" package muthu.other"在同一个包中包含muthu.test。那是允许的。
来自Google protobuf的文档:
您可以将可选的包说明符添加到.proto文件中,以防止协议消息类型之间发生名称冲突。
package foo.bar;
message Open { ... }
然后,您可以在定义消息类型的字段时使用包说明符:
message Foo {
...
required foo.bar.Open open = 1;
...
}