Lets say i have an object that i created. I edited some values in it so it is different than the new object() that i referenced. Lets call that object f1. Now i want another object called f2 to be a copy of f1 but not a pointer, so that when i change a value in f2, it does not also change f1. How would i go about doing this in java?
Share
First, have your class implement the
Cloneableinterface. Without this, callingclone()on your object will throw an exception.Next, override
Object.clone()so it returns your specific type of object. The implementation can simply be:unless you need something more intricate done. Make sure you call
super.clone(), though.This will call all the way up the hierarchy to
Object.clone(), which copies each piece of data in your object to the new one that it constructs. References are copied, not cloned, so if you want a deep copy (clones of objects referenced by your object), you’ll need to do some extra work in your overriddenclone()function.