Почему перегруженный метод writeObject в LinkedList не проверяет на ConcurrentModificationException, где это делает ArrayList.
Я видел Java код LinkedListПочему метод writeObject в LinkedList не проверяет на ConcurrentModificationException
private void writeObject(java.io.ObjectOutputStream s)
throws java.io.IOException {
// Write out any hidden serialization magic
s.defaultWriteObject();
// Write out size
s.writeInt(size);
// Write out all elements in the proper order.
for (Node<E> x = first; x != null; x = x.next)
s.writeObject(x.item);
}
и Явы код ArrayList
private void writeObject(java.io.ObjectOutputStream s)
throws java.io.IOException{
// Write out element count, and any hidden stuff
int expectedModCount = modCount;
s.defaultWriteObject();
// Write out size as capacity for behavioural compatibility with clone()
s.writeInt(size);
// Write out all elements in the proper order.
for (int i=0; i<size; i++) {
s.writeObject(elementData[i]);
}
if (modCount != expectedModCount) {
throw new ConcurrentModificationException();
}
}
Что может быть возможные причины.
Спасибо и Стивен, у меня есть два вопроса 1. Если это ошибка и пока не сообщается, как мы можем сообщить об этом, и 2. «Исправить будет разрыв кода клиента», как он сломается? потому что если мы не справимся, это вызовет некоторые проблемы, такие как Маленький Санти. – Pydi
1. Это не ошибка. 2. Кого-то код может зависеть от одновременных изменений, в то время как связанный список сериализуется, не вызывая исключения. –