技術的には、クラスが serializable を実装する必要がある理由を知っています。理由は、ObjectOutputStream の writeObject メソッドが、オブジェクトの状態を書き込む前に「シリアライズ可能なインスタンス」を内部的にチェックするためです。
しかし、私の質問は、その必要性は何ですか? writeObject メソッドは、オブジェクト (状態を書き込む必要がある) がシリアライズ可能かどうかに関係なく、オブジェクトの状態を単純に書き込むことができますか?
wikiに従って、クラスはこのインターフェースを実装して、非一時的なデータ メンバーを ObjectOutputStream に書き込むことができることを示します。しかし、ここでも問題は、フィールドが一時的かどうかを判断するためだけにクラスがシリアライズ可能を実装する必要がある理由です。serialiable を実装していないクラスでも、シリアル化する必要があります (transient とマークされたフィールドを除く)。
オブジェクトを(インターフェースで)シリアライズ可能としてマークしても、そのオブジェクトが魔法のようにシリアライズ可能になるわけではありません。それはずっとシリアライズ可能でした。システムが自分で見つけた可能性のある何かを表現しただけなので、本当の正当な理由はわかりません連載は今のやり方です。
クラスをシリアル化するためにクラスがシリアル化可能なマーカーインターフェイスを実装する必要があるのはなぜですか?