当我得到像
这样的东西时Message Foo{
repeated Bar bar = 1;
}
现在我要插入Bar的xy对象。 每个都是循环创建的。
for(i=0; i < xy ; i++){
//Add Bar into foo
}
//Build foo after loop
这是可能的还是在构建foo对象之前我是否同时需要所有xy bar字段?
答案 0 :(得分:11)
当你使用protoc命令生成java对象时,它将创建一个Foo对象,它将拥有自己的构建器方法。
你最终会做这样的事情
//Creates the builder object
Builder builder = Package.Foo.newBuilder();
//populate the repeated field.
builder.addAll(new ArrayList<Bar>());
//This should build out a Foo object
builder.build();
要添加单个对象,您可以执行以下操作。
Bar bar = new Bar();
builder.addBar(bar);
builder.build();
使用您要求的用例进行编辑。
答案 1 :(得分:1)
List<Bar> barList= new Arraylist();
barList.add(new Bar());
然后在Foo中设置Bar的列表
Foo foo = Foo.newBuilder()
.addAllBar(barList)
.build;
Bar 只能设置一个值
Foo foo = Foo.newBuilder()
.addBar(new Bar())
.build;