我一直以为clone()会创建一个对象而不调用构造函数。
中的实现
Object.clone()不会调用构造函数。
没有什么可以阻止您自己以某种方式实现它的。例如,这是一个完全有效的
clone()实现:
public final class Foo implements Cloneable { private final int bar; public Foo(int bar) { this.bar = bar; } @Override public Object clone() { return new Foo(bar); }}如果类是
final,则只能(无条件地)执行此操作,因为这样可以保证返回的对象与原始对象的类型相同。
如果该类不是最后的类,我想您 可以 检查该实例是否只是“覆盖”该类型的实例,
clone()并在不同情况下以不同的方式进行处理……这样做很奇怪。



