为什么 readObject 和 writeObject 是私有的,为什么我要显式编写瞬态变量?
我正在阅读关于有效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); } } }
是否有任何特定原因将变量声明为瞬态,然后在 writeObject 方法中显式写入它?如果它没有被宣布为瞬态,它无论如何都会被写出来,对吧?
size