ConcurrentModificationException에 대해 읽었습니다. 컬렉션에 대한 반복 (iteration)의 경우이 예외를 얻기위한 정보가 많이 있습니다.반복자가없는 ConcurrentModificationException (암시 적 또는 명시 적)입니다. 진짜야?
나를 위해 흥미 롭다 iterator를 사용하지 않고이 예외를 얻을 수 있을까요?
ConcurrentModificationException에 대해 읽었습니다. 컬렉션에 대한 반복 (iteration)의 경우이 예외를 얻기위한 정보가 많이 있습니다.반복자가없는 ConcurrentModificationException (암시 적 또는 명시 적)입니다. 진짜야?
나를 위해 흥미 롭다 iterator를 사용하지 않고이 예외를 얻을 수 있을까요?
이터레이터를 제외하고이 예외가 발생하는 표준 목록 구현에는 많은 장소가 없습니다. writeObject
메서드는 이미 주석에 언급되었습니다. 또 다른 하나는 ArrayList
로부터 취득한 subList
을 수정하려고 할 때하고 ArrayList
는 그 동안 수정되었습니다 :
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
// Obtain the subList
List<String> subList = list.subList(1,2);
// Modify the backing list
list.add("X");
// Try to modify the subList: Causes ConcurrentModificationException
subList.add("Y");
예.
throw new ConcurrentModificationException();
아하하))) 정말 진실입니다.))) – gstackoverflow
하나의 변형입니까? – gstackoverflow
당신이 ArrayList에의 코드를 읽는다면, 예를 들어, 당신이 ConcurrentModification는 것을 볼 수 있습니다 writeObject() 메서드가 직렬화 중에 목록이 변경되었음을 감지하면 throw됩니다. 따라서 스레드가 직렬화되는 동안 목록을 수정하고 직렬화 스레드가 수정 사항을 확인하면 그러한 예외가 발생합니다. –