Я читаю главу "Сериализация в эффективной Java".
-
Кто вызывает readObject() и writeObject()? Почему эти методы объявлены частными?
-
Ниже приведен фрагмент кода из книги
// StringList with a reasonable custom serialized form public final class StringList implements Serializable { private transient int size = 0; private transient Entry head = null; //Other code private void writeObject(ObjectOutputStream s) throws IOException { s.defaultWriteObject(); s.writeInt(size); // Write out all elements in the proper order. for (Entry e = head; e != null; e = e.next) s.writeObject(e.data); } } }
Есть ли какая-либо конкретная причина, по которой переменная
size
объявляется переходной, а затем в методе writeObject явно написана? Если бы он не был объявлен переходным, все равно он был бы написан, верно?