Re: List of Interfaced-Objects not being set at serialized
andrewfsears@gmail.com wrote:
Does anyone have idea why this might be happening, and if so, is there
a solution out there?
Possibly there is some bug in your code.
Try that:
<code>
import java.io.*;
import java.util.*;
public class Test {
public static class YourClass implements Serializable {
private static final long serialVersionUID = 1L;
private List<Shape> shapes
= new ArrayList<Shape>();
public void addShape(Shape shape) { shapes.add(shape); }
}
public interface Shape { }
public static class Square implements Shape, Serializable {
private static final long serialVersionUID = 1L;
}
public static class Circle implements Shape, Serializable {
private static final long serialVersionUID = 1L;
}
public static void main(String[] args) throws Exception {
YourClass blah = new YourClass();
blah.addShape( new Circle() );
blah.addShape( new Square() );
blah.addShape( new Circle() );
System.out.println(blah.shapes);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(blah);
oos.close();
ObjectInputStream ois = new ObjectInputStream(
new ByteArrayInputStream(baos.toByteArray()));
blah = (YourClass) ois.readObject();
System.out.println(blah.shapes);
}
}
</code>
The output on my machine is:
[Test$Circle@30c221, Test$Square@119298d, Test$Circle@f72617]
[Test$Circle@cd2c3c, Test$Square@13582d, Test$Circle@21b6d]
So everything seems to work as expected.
Could you show us the code that you use to serialize/deserialize your
objects?
piotr