java - 在没有克隆、复制构造函数和复制工厂的 java 中创建对象副本

标签 java

伙计们,虽然这听起来像是一个已经有人问过的问题,但事实并非如此。

这里的问题很简单,我想在不使用克隆、复制构造函数和复制工厂方法的情况下创建对象的精确副本,因为我们无法对类进行更改(无权限)。 假设我有一个 Dog 对象

我想再创建一个 Dog 对象,在这个副本中我必须更改某些属性的值,但原始对象不应受到任何影响

谢谢

最佳答案

如果对象支持,您可以考虑序列化/反序列化,但它可能会影响性能。
使用 ObjectOutputStream 也是另一种选择:http://docs.oracle.com/javase/6/docs/api/java/io/ObjectOutputStream.html#replaceObject%28java.lang.Object%29
另请看《Effective Java》的“Item 76: Write readObject methods defensively”。它展示了一些您可以使用对象输入流玩的讨厌的技巧。

关于java - 在没有克隆、复制构造函数和复制工厂的 java 中创建对象副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17672867/

相关文章:

java - 使用 ByteBuddy 创建注释接口(interface)

java - Java中Thread类的中断方法

java - 无法将 db '/data/data/my.easymedi.controller/databases/EasyMediInfo.db' 的区域设置更改为 'en_US'

java - 使用 Java 的硬盘总大小

java - YCSB zipf分布的alpha参数是多少

java - Web应用程序JBoss 5中的资源注入(inject)

java - kotlin-jpa 插件不生成默认构造函数

java - 如何只允许用户输入字符并进行验证?

java - Glassfish JSF jar

java - java中控制台输出变化