import java.io.*; public class GenericMethodTest { public static void main(String[] args) { Student stu=new Student(); stu.name="雷锋"; stu.age=100; String fileName="e:/a.dat"; try { toFile(stu,fileName); } catch (IOException e) { e.printStackTrace(); } try { Student stu_1=fromFile(fileName); System.out.println(stu_1); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } private static <T> void toFile(T t,String fileName) throws IOException{ FileOutputStream fos=new FileOutputStream(fileName); ObjectOutputStream oos=new ObjectOutputStream(fos); oos.writeObject(t); oos.flush(); oos.close(); } private static <T> T fromFile(String fileName) throws IOException, ClassNotFoundException{ FileInputStream fis=new FileInputStream(fileName); ObjectInputStream oid=new ObjectInputStream(fis); @SuppressWarnings("unchecked") T t=(T)oid.readObject(); return t; } } import java.io.Serializable; @SuppressWarnings("serial") public class Student implements Serializable { public String name; public int age; @Override public String toString(){ return name+" : "+age; } }