Wieso überschreibt meine add() Funktion meine Arraylist?

...komplette Frage anzeigen

4 Antworten

Da sehe ich keinen Fehler, vllt liegt der ja ganz wo anderst?  Vllt liegts daran, dass du immer dasselbe Objekt bearbeitest (Objekte sind in Java Referenzvariablen!)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Bayera
11.05.2016, 12:56

Ich habe es auch schon so probiert, was das dann doch ausschließen sollte:

public int addNewUser (BeanUsers neuer)
{
BeanUsers Temp=new BeanUsers();
Temp=neuer;
this.allUser.add(Temp);
return this.allUser.indexOf(neuer);
}
0

Sicher dass du vor der Übergabe auch tatsächlich ein neues Objekt erstellst?

Die Anzahl der Items in der Liste müsste sich ja erhöhen? Wenn aber alle die selben Werte haben machst du bei der Instantiierung was falsch.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Bayera
11.05.2016, 13:00

Die Übergabe erfolgt so:

BeanUsers zuSpeichernderUser = new BeanUsers();
zuSpeichernderUser.setBenutzername(txtUserName.getText().toString());
zuSpeichernderUser.setFortschritt("hier steht der Fortschritt");

int i=FileHandler.getInstance().addNewUser(zuSpeichernderUser);
0

Also da ist kein Fehler. - Demnach wäre interessant zu wissen, wie du darauf kommst, dass es einen Fehler geben könnte?

Ich hab mal ein Bean 'erraten' und kann das nicht nachvollziehen:

http://pastebin.com/Na1K8AGC

kannst du bitte etwas konkreter werden?

Antwort bewerten Vielen Dank für Deine Bewertung

das Problem dürfte sein, dass Du an der Stelle wo addNewUser() aufgerufen wird nicht jedesmal einen neuen mit new() erstellten BeanUsers übergibts....sondern immer wieder das gleiche Objekt mit geänderten Attributen,,,

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Bayera
11.05.2016, 13:25

Ich dachte, dass das new ein neues Objekt erstellt?!

0

Was möchtest Du wissen?