我遇到一个奇怪的问题。正在获取java.util.ConcurrentModificationException
。但是我没有修改当前集合。请帮忙。
方法调用
setAllAddress((List<AddressBean>) usrProfileResp.getAddressBeanList());
setShippingAddresses(getAllAddress());
方法
public List<AddressBean> getAllAddress() {
return allAddress;
}
public void setShippingAddresses(List<AddressTokenBean> shippingAddresses) {
shippingAddresses = new ArrayList<AddressBean>();
List<AddressBean> addresses = getAllAddress();
if (addresses != null && addresses.size() > 0) {
for (AddressBean addr : addresses) { // EXCEPTION OCCURS HERE
if (!Constants.BILLING_ADDRESS.equals(addr.getAddressType())) {
shippingAddresses.add(addr);
}
}
}
}
最佳答案
最可能的解释是addresses
和shippingAddresses
引用相同的集合。您可以在调试器中进行检查。
getAllAddresses()是否完全使用shippingAddresses吗?
您确定此集合没有在其他线程中被修改吗?这是一直发生还是仅偶尔发生?