オブジェクトのリストをソケット経由で送信しようとしています。
リスト内のオブジェクトにはシリアル化できないオブジェクトが含まれているため送信できませんが、基本クラスは完全にシリアル化可能であり、必要なすべてのフィールドが含まれています。
だから私がしようとしているのは、リストを基本クラスのリストに変換することです。私が考えることができる唯一の方法は、次のとおりです。
// subClassList is an ArrayList<SubClass>
ArrayList<BaseClass> baseClassList = new ArrayList<BaseClass>();
for(SubClass subClass: subClassList) {
// cast to the base class
baseClassList.add((BaseClass)subClass);
}
ただし、同じ NotSerializableException 例外が発生するため、これは機能しません。コードをデバッグすると、キャストされているにもかかわらず、新しいリストがまだサブクラスのリストであることがわかります。
私がやろうとしていることを達成する方法はありますか?