import java.io.*; class Dynamic { int kind; Object value; Dynamic(int k, Object v) { kind=k; value=v;} public static void main(String args[]) throws Exception { FileOutputStream out = new FileOutputStream("Hopkins"); ObjectOutputStream s1 = new ObjectOutputStream(out); s1.writeObject("Type Inference"); s1.writeInt(2000); s1.flush(); s1.close(); FileInputStream in = new FileInputStream("Hopkins"); ObjectInputStream s2 = new ObjectInputStream(in); String str = (String)s2.readObject(); in.close(); p(new Dynamic(1, new Integer(0))); p(new Dynamic(2, new Boolean(true))); } static void p(Dynamic d) { switch(d.kind) { case 1: Integer i=(Integer)d.value; break; case 2: Boolean b=(Boolean)d.value; break; } } }