Hallo Experten,
der Nichtexperte hat eine Frage:
Es gibt da eine Klasse abc. In dieser Klasse wird eine Liste erstellt.
Hier der verkürze Code:
public class abc{
private String var1;
privat setzeVar1{
// hier wird var1 initialisiert
var1 = "Ein String";
}
public List irgendwas() {
List myList = new LinkedList();
String var2 = var1;
// hier wird die Variable var2 geändert
var2 = "Noch ein String";
// und dann in die Liste gelegt
myNewEntry = new abc();
myNewEntry.var1 = var2;
myList.add(myNewEntry);
// hier soll var2 auf var1 zurückgesetzt werden
var2 = var1;
// \*\*\* hier kommt die Frage \*\*\*
// var2 enthält nicht - wie ich erwarte - "Ein String"
// sondern "Noch ein String"
}
*** hier kommt die Frage ***
Anscheinend wird var1 beim Ändern von var2 auch geändert, denn nach var2 = var1 hat sich nix geändert, d.h. var1 hat den gleichen Inhalt wie var2, var2 wurde nicht auf den ursprünglichen Wert von var1 zurückgesetzt.
- Warum ist das so?
- Wie kann ich das umgehen?
Vielen Dank für für einen Java-Anfänger verständliche Antworten
Manfred