从protobuf生成的类中包含的列表中删除对象

时间:2017-11-10 05:04:37

标签: java protocol-buffers

我的protobuf对象看起来像这样。

message Abc {
   repeated XYZ xyz;
}

当它转换为类Abc时,它具有list<XYZ>;

的以下方法
getXyzList(), getXyzBuilderList(), getXyzOrBuilderList()

让我们说这个列表包含4个类XYZ的对象,我迭代这个列表。根据我需要从此列表中删除特定对象的条件。

因为在迭代列表时我无法移除对象,所以我将对象添加到另一个列表中,例如说tempList(类型List<XYZ>)。

现在假设tempList列表中有2个对象。从原始列表中删除这两个对象的最佳方法是什么?

我不能Abc.getXyzList()Abc.getXyzOrBuilderList(),因为它是不可变的。如果我Abc.getXyzBuilderList(),它会更改对象引用(保持内容相同)。

如果我Abc.getXyzBuilderList().removeAll(tempList),则tempListAbc.getXyzBuilderList()的对象引用不同,因此不会删除对象。

如何解决这个问题?

0 个答案:

没有答案