I am currently creating an Android app and thought that I had a problem with saving data internally, etc. It turned out that the problem had nothing to do with that, but with my understanding of Java.
The problem is that when I do
myObject1 = myObject2;
and use myObject1 in myObject3 which might be a list, or whatever (in my case a Hashtable) and then change myObject2, myObject3 gets changed accordingly, as well. What is this called, and where can I learn more about it? How do I assign myObject2 to myObject1 so that myObject1 is completely “independent”?
Variables that are Objects in Java are called references and refer to the same location in memory. If you want two objects of the same type that don’t refer to the same location in memory in need to allocate memory for them on your machine by using the
newkeyword.Below both variables myObject1 and myObject2 are references to an OBJECT1 object, but that don’t exist at the same memory location:
If assigning an object to another is important you can look into the clone() method or use a copy constructor: