소켓을 통해 개체 목록을 보내려고합니다.하위/하위/상속 된 클래스에서 기본/상위/상위 클래스 가져 오기
목록에있는 개체에는 직렬화 할 수없는 개체가 포함되어 있으므로 보낼 수는 없지만 기본 클래스는 완전히 serializable이며 필요한 모든 필드가 들어 있습니다.
그래서 내가하려는 것은 기본 클래스 목록으로 목록을 변환하는 것입니다. 내가 생각할 수있는 유일한 방법은 그래서 다음과 같이는 할 : 나는 여전히 같은 가지는 NotSerializableException 예외가로 이것은 그러나 작동하지 않습니다
// subClassList is an ArrayList<SubClass>
ArrayList<BaseClass> baseClassList = new ArrayList<BaseClass>();
for(SubClass subClass: subClassList) {
// cast to the base class
baseClassList.add((BaseClass)subClass);
}
. 코드를 디버깅 한 결과 새 목록은 여전히 캐스팅되었지만 하위 클래스의 목록임을 알 수 있습니다.
내가하려는 일을 성취 할 수있는 방법이 있습니까? 실제 개체의 형식이 변경되지 않는 참조를 캐스팅