我的框架处理任何类的域对象。我需要能够浅克隆这样一个域对象实例foo
,就好像它实现了Cloneable
(它没有实现)并且我调用Object.clone()
它返回一个浅克隆。
不起作用的事情:
- 强制 foo 的类实现
Cloneable
公共方法clone()
。 - 通过反射调用 foo.clone() (到达受保护的方法
Object.clone()
)。它抛出CloneNotSupportedException
是因为foo
's 类没有实现Cloneable
。 - 序列化和反序列化 foo:我需要浅拷贝,而不是深拷贝。
限制:
foo
的类在编译时是不知道的。foo
可能具有未作为 getter/setter 公开的字段。
注意:有几个类似的问题,但似乎没有一个专注于获得浅层克隆。