对缓存中取出来的对象,进行增删改,却不想缓存对象的值受影响,就可以用深度克隆操作 @SuppressWarnings("unchecked") public static T cloneObjectFrom(T src) throws RuntimeException { ByteArrayOutputStream memoryB
@SuppressWarnings("unchecked") public staticT cloneObjectFrom(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) { throw new RuntimeException(e); } finally { if (out != null) try { out.close(); out = null; } catch (IOException e) { throw new RuntimeException(e); } if (in != null) try { in.close(); in = null; } catch (IOException e) { throw new RuntimeException(e); } } return dist; }