Search code examples
javaclonecopy-constructor

Clone() vs Copy constructor- which is recommended in java


clone method vs copy constructor in java. which one is correct solution. where to use each case?


Solution

  • Clone is broken, so dont use it.

    THE CLONE METHOD of the Object class is a somewhat magical method that does what no pure Java method could ever do: It produces an identical copy of its object. It has been present in the primordial Object superclass since the Beta-release days of the Java compiler*; and it, like all ancient magic, requires the appropriate incantation to prevent the spell from unexpectedly backfiring

    Prefer a method that copies the object

    Foo copyFoo (Foo foo){
      Foo f = new Foo();
      //for all properties in FOo
      f.set(foo.get());
      return f;
    }
    

    Read more http://adtmag.com/articles/2000/01/18/effective-javaeffective-cloning.aspx