私とは異なるパッケージ名を持つ他のプロトをインポートしました。他のパッケージからのメッセージを使用するには、パッケージ名を使用してそのメッセージにアクセスしてください。
例えば :
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のようにmuthu.otherパッケージを直接使用する方法はありますかoptional val = 2;の代わりにmuthu.other .Other.val?
これに関するヘルプドキュメントが見つかりませんでした。手伝ってください。
パッケージ名が同じ場合、フィールド宣言からパッケージ名を省略できますが、それ以外の方法はありません。 「package muthu.other」を指定してmuthu.testを同じパッケージに含めることができる場合、許可されます。
ProtobufのGoogleドキュメントから:
プロトコルメッセージタイプ間の名前の衝突を防ぐために、オプションのパッケージ指定子を.protoファイルに追加できます。
package foo.bar;
message Open { ... }
その後、メッセージタイプのフィールドを定義するときにパッケージ指定子を使用できます。
message Foo {
...
required foo.bar.Open open = 1;
...
}