Я пытаюсь изменить поле в выбранных объектах в Списке, но я не могу найти способ сделать это, используя обычный Iterator, потому что у него нет метода set()
.
Я пытался использовать ArrayListIterator, который предоставляет метод set()
, но это вызывает исключение приведения. Есть ли способ обойти это?
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 не может быть приведен к
org.apache.commons.collections.iterators.ArrayListIterator
Как правильно выполнить то, что я хотел бы сделать?