私は最近Protobufsの作業を開始しました。私を助けてもらえますか?DescriptorProto.Builderプロトコルバッファにサブフィールドを追加
サンプルコード:
DescriptorProto.Builder builder;
FieldDescriptorProto.Builder fieldBuilder = FieldDescriptorProto.newBuilder()
.setLabel(label)
.setType(type)
.setName("name")
.setNumber(1)
.setDefaultValue("value");
builder.addField(fieldBuilder.build());
今すぐフィールドの型がFieldDescriptorProto.Type.TYPE_MESSAGEでみましょう。 fieldBuilderを使用して作成されたフィールドにサブフィールドを広告する必要があります。
これは、フィールドを含むネストされたメッセージを持つルートメッセージを持つプロトファイル用のディスクリプタファイルを作成するときに可能になるはずです。私が見つけたものをデバッグすると、 "内部フィールドを持つタイプのメッセージのフィールドがルートメッセージに追加されます"、つまり、次のメッセージの場合、rootMessageは2つのサブフィールドBを持つフィールドsubMessage(type = Message) 、C.
サンプルプロト:
message rootMessage{
string A = 1;
message subMessage{
string B = 1;
string C = 2;
}
subMessage sub = 2;
}
通常、私はアイデアいるProtobufが使用する
FieldDescriptorProto.Builder fieldBuilder = FieldDescriptorProto.newBuilder()
.setLabel(label)
.setType(type)
.setName("name")
.addField(...) // **This Part**
.setNumber(1)
.setDefaultValue("value");