1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
import java.util.List;
import java.util.ArrayList;
import java.io.*;
public class T implements java.io.Serializable
{
List<Link> lns;
String name;
T(String name)
{
this.name = name;
lns = new ArrayList<Link>();
}
public String toString()
{
return "[ "+ name +" ]";
}
public Link [] getLinks()
{
Link []res=new Link[0];
return lns.toArray(res);
}
public static void main(String []args) throws Exception
{
System.out.println("Creating one");
T one = new T("one");
System.out.println("Creating two");
T two = new T("two");
T three = new T("three");
System.out.println("Creating the link");
Link ln = new Link(one,two);
Link ln2 = new Link(two,three);
Link ln3 = new Link(one,three);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(buf);
out.writeObject(ln);
out.flush();
out.close();
ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buf.toByteArray()));
Object dest = in.readObject(); // EXCEPTION LEVEE !!!
in.close();
//System.out.println(dest);
for(T t : ((Link)dest).getSubObj())
{
for(Link l : t.getLinks())
{
System.out.println(l);
}
}
}
}
class Link implements java.io.Serializable
{
T one;
T two;
Link(T t1,T t2)
{
one = t1 ; two = t2;
t1.lns.add(this);
t2.lns.add(this);
}
public String toString()
{
return "Link : " + one +" to " + two;
}
T []getSubObj()
{
return new T[]{one,two};
}
} |
Partager