gpt4 book ai didi

java - 将对象的副本添加到 ArrayList

转载 作者:行者123 更新时间:2023-11-30 08:07:06 24 4
gpt4 key购买 nike

我有这个代码:

Element excludeFilterElementMerged = excludeFilter.elements.get(0);
for (model.rest.filter.Segment.Element elementExcl : excludeFilter.elements) {
filterPosition++;
excludeFilterElementMerged.isIncluded = "false";

if (filterPosition % 10 == 0 || filterPosition == excludeFilter.elements.size()){
elements.add(excludeFilterElementMerged);
excludeFilterElementMerged = elementExcl;
}

excludeFilterElementMerged.filter.criteria.addAll(elementExcl.filter.criteria);
excludeFilterElementMerged.filter.statement += " OR "+elementExcl.filter.statement;

}

excludeFilterElementMerged 添加到列表后,我想在不影响列表中对象的情况下为其赋予新属性。我想,我可以通过为它分配一个新对象来解决这个问题:excludeFilterElementMerged = elementExcl;

解决这个问题的正确方法是什么?

我应该将对象的克隆 添加到List 中吗?或者我应该创建一个 Element 类型的新对象,将 excludeFilterElementMerged 放入其中,然后将其保存到 List 中?

最佳答案

excludeFilterElementMerged = elementExcl 绝对不是正确的方法,因为它不会复制对象,它只是创建一个新的引用。

在 Java 中没有简单的方法来复制对象。您必须实现 clone() ( which is not recommended ) 或更好,具有复制构造函数,例如public Element(final Element anotherElement).

关于java - 将对象的副本添加到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33896368/

24 4 0