Hey,
hab eigentlich mehr eine Frage, als ein Problem.
Ich hab 2 Klassen: Eine Helper Klasse mit Getter/Setter für verschiedene Variablen.
Die 2. Klasse bietet einfach nur Methoden an um die Daten aus der Helper Klasse zu befüllen, abzufragen.
Nun zu meiner Frage, ich hab die instanz der Klasse Helper als Instanzvariable deklariert. Wenn ich nun die Methode ausgabe() ausführe werden mir immer die selben Ergebnisse ausgegeben. Es scheint so als würden die Getter/Setter nicht den Wert neu überschreiben. Verstehe nicht ganz warum. Wenn ich eine Instanz der Helper Klasse direkt in der Methode mache, also immer eine neue bei jedem aufruf funktioniert es natürlich.
Also wieso ist das so und kann man das irgendwie umgehen?
hab eigentlich mehr eine Frage, als ein Problem.
Ich hab 2 Klassen: Eine Helper Klasse mit Getter/Setter für verschiedene Variablen.
Die 2. Klasse bietet einfach nur Methoden an um die Daten aus der Helper Klasse zu befüllen, abzufragen.
Nun zu meiner Frage, ich hab die instanz der Klasse Helper als Instanzvariable deklariert. Wenn ich nun die Methode ausgabe() ausführe werden mir immer die selben Ergebnisse ausgegeben. Es scheint so als würden die Getter/Setter nicht den Wert neu überschreiben. Verstehe nicht ganz warum. Wenn ich eine Instanz der Helper Klasse direkt in der Methode mache, also immer eine neue bei jedem aufruf funktioniert es natürlich.
Also wieso ist das so und kann man das irgendwie umgehen?
Java:
public class Helper {
private int id = 0;
private String txt = "";
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTxt() {
return txt;
}
public void setTxt(String txt) {
this.txt = txt;
}
}
Java:
import java.util.ArrayList;
import java.util.List;
public class Abfrage {
List<Helper> helpeContainer = new ArrayList<Helper>();
Helper helper = new Helper();
public void fulleContainer(String s, int id){
helper.setTxt(s);
helper.setId(id);
helpeContainer.add(helper);
}
public void ausgabe(){
try {
for (Helper iterable_element : helpeContainer) {
System.out.println(iterable_element.getId() + " " + iterable_element.getTxt());
}
} catch (Exception e) {
// TODO: handle exception
}
}
public static void main(String[] args) {
Abfrage start = new Abfrage();
for (int i = 0; i < 10; i++) {
start.fulleContainer("ID: "+i, i);
}
start.ausgabe();
}
}