有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我的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) 个答案