Javaでは、いくつかの理由でCollection-interfacesがSerializableを拡張しません。さらに、これらのインターフェイスの最も一般的な実装では、Serializableが実装されています。Java:直列化可能なコレクションを保証する方法
Collectionオブジェクトのいずれかを実装するオブジェクトは、コレクション自体のオブジェクトがすべてシリアライズ可能な場合は、実装自体がシリアル化可能(通常の場合)およびの場合はシリアル化可能です。
しかし、これらの2つの条件が満たされるようにするにはどうすればよいですか?コンパイラがこれらの条件をチェックできるので、私は実行時エラーに遭遇したくありません。私は(リスト-インタフェースのためのショーケース)のようないくつかの明白なインタフェースを考えている:
public interface SerializableList<T extends Serializable> extends Serializable, List<T> {}
誰もこの問題に直面していないし、この簡単な解決策を思い付いている場合、私は思ったんだけど。今まで私は何か解決策や議論を見つけることができず、私の考えに疑問を呈していました。
あなたの質問が正しく理解できれば、 'List'リファレンスを' List 'とすることができます。独自のインターフェイスを展開する必要はありません。 –
コンパイラはそれを確認できません。 Serializableを実装しているすべてのクラスには、非一時的で非シリアル化可能なフィールドが含まれている可能性があり、実行時例外が発生します。 ArrayList
@RohitJain:あなたの提案は、リスト内のオブジェクトが直列化可能であることを保証しますが、List実装自体は保証しません。 – MrD