効果的な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メソッドで明示的に書き込まれる特定の理由はありますか?一時的なものとして宣言されていなかったら、とにかく書かれていたでしょう?