18

Java では、いくつかの正当な理由により、Collection-interfaces は Serializable を拡張しません。さらに、これらのインターフェイスの最も一般的な実装では、Serializable が実装されています。

そのため、Collection-interface の 1 つを実装するオブジェクトは、実装自体がシリアライズ可能 (通常はそうです)であり、コレクション内のオブジェクトがすべてシリアライズ可能である場合、シリアライズ可能です。

しかし、これら 2 つの条件が確実に満たされるようにするにはどうすればよいでしょうか。コンパイラがこれらの条件をチェックできるので、実行時エラーに遭遇したくありません。私は(リストインターフェースのショーケース)のような明白なインターフェースについて考えています:

public interface SerializableList<T extends Serializable> extends Serializable, List<T> {}

誰もこの問題に直面しておらず、この簡単な解決策を思いついたのではないかと思っています。これまで、これに関する解決策や議論さえも見つけることができなかったので、自分の考えに疑問を感じています。

4

3 に答える 3