如何实现从缓存中提取对象并进行深度复制?

更新于
2026-10-12 10:33:25
2阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计177个文字,预计阅读时间需要1分钟。

如何实现从缓存中提取对象并进行深度复制?

从缓存中取出对象,进行增删改,但不想让对象值的变更影响缓存,可以使用深度克隆操作+`@SuppressWarnings(unchecked)` public static T cloneObjectFrom(T src) throws RuntimeException {`

对缓存中取出来的对象,进行增删改,却不想缓存对象的值受影响,就可以用深度克隆操作

@SuppressWarnings("unchecked") public static T 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; }

如何实现从缓存中提取对象并进行深度复制?

本文共计177个文字,预计阅读时间需要1分钟。

如何实现从缓存中提取对象并进行深度复制?

从缓存中取出对象,进行增删改,但不想让对象值的变更影响缓存,可以使用深度克隆操作+`@SuppressWarnings(unchecked)` public static T cloneObjectFrom(T src) throws RuntimeException {`

对缓存中取出来的对象,进行增删改,却不想缓存对象的值受影响,就可以用深度克隆操作

@SuppressWarnings("unchecked") public static T 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; }

如何实现从缓存中提取对象并进行深度复制?