I always thought that clone() creates an object without calling a constructor.
clone()
But, while reading Effective Java Item 11: Override clone judicio
I think below part of code always create the new object and supply to the other class (i.e. helpfull in singleton).
@Override public Object clone() { return new Foo(bar); }
I think this can be supply for the purpose:
public MyObject clone() { return new MyObject(this); }