すべてのドメインレベルロジックをインターフェイスに適用してプログラミングしました。コレクションインタフェース(Collection、List、Setなど)がSerializableを実装していないため、Beanにデータを入れたい場合、Beanは機能しません。JavaコレクションをインターフェースにプログラミングしてSerializableを使用できますか?
具体的なタイプを使用するためにすべてのコードをリファクタリングする必要がありますか?
すべてのドメインレベルロジックをインターフェイスに適用してプログラミングしました。コレクションインタフェース(Collection、List、Setなど)がSerializableを実装していないため、Beanにデータを入れたい場合、Beanは機能しません。JavaコレクションをインターフェースにプログラミングしてSerializableを使用できますか?
具体的なタイプを使用するためにすべてのコードをリファクタリングする必要がありますか?
クラスがSerializable
を実装し、そのメンバーのすべてがシリアライズ可能な場合、オブジェクトは正しくシリアル化できます。例:限りluckyNumbers
のインスタンスが(例えばArrayList
など)シリアライズ可能であり、そのメンバーは、オブジェクトをシリアル化し、(この場合Integer
S)シリアライズされているよう
public class Person implements Serializable {
private String name;
private Collection<Integer> luckyNumbers = new ArrayList<Integer>();
}
。
Serializable
は「マーカー」インターフェースである。参照の型に使用するのは適切ではありません。ダイナミックなタイピングをしています(ただし、外部の静的型チェッカーを使用することはありません)。
奇妙なパラメータ化されたジェネリックメソッドでフープをジャンプすることはできますが、極端に醜いでしょうし、Javaライブラリはそれを行わないので、
私のインスタンスはシリアライズ可能ですが、私は信じています。これはJava 5のみに当てはまりますか? –
あなたはリファレンスを持っていますか?あなたはこれをテストしましたか?もしそうなら、私は私の答えを削除します。 –
いいえ、これはjava 1.4にも適用されます。あなたのコレクションがArrayListのようなSerializableの場合、クラスは適切にシリアル化されます。 – Jorn