如何将缓存中取出的对象进行深度克隆操作?

2026-04-15 10:3313阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何将缓存中取出的对象进行深度克隆操作?

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

如何将缓存中取出的对象进行深度克隆操作?

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

@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; }

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

如何将缓存中取出的对象进行深度克隆操作?

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

如何将缓存中取出的对象进行深度克隆操作?

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

@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; }