Próbuję klonować obiekty metodą:
Object klonuj(){
Object ret = null;
try{
ByteArrayOutputStream bwy = new ByteArrayOutputStream();
ObjectOutputStream wy = new ObjectOutputStream(bwy);
wy.writeObject(this);
wy.close();
ByteArrayInputStream bwe = new ByteArrayInputStream(bwy.toByteArray());
ObjectInputStream we = new ObjectInputStream(bwe);
ret = (ReprezentacjaBloku)we.readObject();
we.close();
}catch(Exception e){
e.printStackTrace();
}
return ret;
}
Bo ta metoda, w przeciwieństwie do standardowej, wydaje się się jeszcze dosyć praktyczna. Niestety, częstym problemem jest błąd NotSerializableException występujący w trakcie próby klonowania, który sygnalizuje, jak rozumiem, że typ któregoś z pól klonowanej klasy nie implementuje interfejsu Serializable. Czy nie wie ktoś może, czy istnieje jakiś sposób, żeby sprawdzić, który podobiekt jest przyczyną błędu? Bo poza komunikatem błędu i zawiłym stack trace nie otrzymuję żadnych szczegółowych informacji :(.