@SuppressWarnings("unchecked") publicstatic <T> T cloneTo(T src)throws RuntimeException { ByteArrayOutputStream memoryBuffer = new ByteArrayOutputStream(); ObjectOutputStream out = null; ObjectInputStream in = null; T dist = null;
try { out = new ObjectOutputStream(memoryBuffer); out.writeObject(src); out.flush(); in = new ObjectInputStream(new ByteArrayInputStream( memoryBuffer.toByteArray())); dist = (T) in.readObject();
} catch (Exception e) { thrownew RuntimeException(e); } finally { if (out != null) try { out.close(); out = null; } catch (IOException e) { thrownew RuntimeException(e); } if (in != null) try { in.close(); in = null; } catch (IOException e) { thrownew RuntimeException(e); } }
return dist; }
publicstaticvoidmain(String[] args){ Husband husband = new Husband(1); Wife wife = new Wife(1,"jin"); husband.setWife(wife); Husband husband2 = cloneTo(husband);//运用反序列生成了一个对象 } }