How do I copy an object in Java? -
consider below code:
dummybean dum = new dummybean(); dum.setdummy("foo"); system.out.println(dum.getdummy()); // prints 'foo' dummybean dumtwo = dum; system.out.println(dumtwo.getdummy()); // prints 'foo' dum.setdummy("bar"); system.out.println(dumtwo.getdummy()); // prints 'bar' should print 'foo'
so, want copy 'dum' 'dumtwo' , want change 'dum' without affecting 'dumtwo'. above code not doing that. when change in 'dum', same change happening in 'dumtwo' also.
i guess, when dumtwo = dum
, java copies reference only. so, there way create fresh copy of 'dum' , assign 'dumtwo'?
create copy constructor:
class dummybean { private string dummy; public dummybean(dummybean another) { this.dummy = another.dummy; // can access } }
every object has clone method can used copy object, don't use it. it's way easy create class , improper clone method. if going that, read @ least joshua bloch has in effective java.
Comments
Post a Comment