0

readResolve および writeReplace メソッドを使用して、Externalizable および Serializable インスタンスの両方の置換オブジェクトを指定できます...

いくつかのことを知りたかっただけです:

1) readObject(ObjectInputStream is ) および writeObject(ObjectOutputStream os) メソッドを、Serilaizable クラスの readResolve() および writeReplace() と組み合わせて使用​​できますか? オブジェクトを置き換えてから、readObject と writeObject を使用してバイト ストリームに変更操作を実行することは可能ですか?外部化できない) または、インスタンスをストリームに書き込むときに Serilizable クラスの状態が自動的に保存されますか?

4

1 に答える 1

0

Serializable クラスに複数の特殊メソッドが存在する場合のメソッドの実行順序

メソッドは次の順序で実行されます。

シリアル化が発生すると、メソッドの実行順序は次のようになります。

writeReplace
writeObject
readObject
readResolve
validateObject

ポイント1への回答)

したがって、質問 1 の答えは「はい」です。

ポイント2への回答)

JavaDoc Serializable インターフェイス Javadocから、次のような特別なメソッド用

 private void writeObject(java.io.ObjectOutputStream out)
     throws IOException

The writeObject method does not need to concern itself with the state belonging to its superclasses or subclasses. State is saved by writing the individual fields to the ObjectOutputStream using the writeObject method or by using the methods for primitive data types supported by DataOutput.
于 2014-07-28T18:03:48.773 に答える