gpt4 book ai didi

java - 如何修改List<中的对象?迭代时扩展 MyObject>?

转载 作者:行者123 更新时间:2023-12-01 07:45:16 26 4
gpt4 key购买 nike

我正在尝试修改列表中选择对象中的字段,但无法找到使用普通迭代器执行此操作的方法,因为它没有 set() 方法。

我尝试使用提供 set() 方法的 ArrayListIterator,但这会引发强制转换异常。有办法解决这个问题吗?

   Iterator it = topContainer.subList.iterator();
while (it.hasNext()) {
MyObject curObj = (MyObject) it.next();
if ( !curObj.getLabel().contains("/") ) {
String newLabel = curObj.getLabel() + "/";
curObj.setLabel(newLabel);
((ArrayListIterator) it).set(curObj)
}
}

我希望列表中的原始当前对象能够顺利设置,但我却收到此异常:

java.util.ArrayList$itr cannot be cast to org.apache.commons.collections.iterators.ArrayListIterator

完成我想做的事情的正确方法是什么?

最佳答案

您根本不需要调用set。您只需在 curObj 上调用 setLabel 即可:

// please, don't use raw types!
Iterator<? extends MyObject> it = topContainer.subList.iterator();
while (it.hasNext()) {
MyObject curObj = it.next();
if ( !curObj.getLabel().contains("/") ) {
String newLabel = curObj.getLabel() + "/";
curObj.setLabel(newLabel);
}
}

关于java - 如何修改List<中的对象?迭代时扩展 MyObject>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54142178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com