我的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)
,则tempList
和Abc.getXyzBuilderList()
的对象引用不同,因此不会删除对象。
如何解决这个问题?