Referenz oder Objekt.in einer Liste

Hallo.

Ich habe da mal eine Frage die sich mir heute gestellt hat.
Und zwar.

Private m_test = Null;
Private List<Test> m_list = new ArrayList<Test>();

Public void addTest(){
    Test t = new Test()
    m_test = t
}

Public void addToList()
{
    m_list.add(m_test);
}

Test hat die Attribute private String a;
Und private String B; Ansonsten nur Setter und Getter.

Zunächst wird die Methode addTest() aufgerufen. Am Objekt m_test wird der Setter für A und B aufgerufen, so dass die Werte Aa und Bbtest gesetzt. Nachdem jetzt die Funktion addToList() aufgerufen wurde, enthält die Liste ein neues Objekt. Bei diesem sind allerdings die Werte A und B auf Null. Wieso?

m_test enthält doch ebenfalls wie t nur eine Referenz auf das Objekt Test ( Methode addTest)
Wenn ich jetzt m_test direkt die Referenz auf Test übergebe, welches zuvor per New Instanziiert wurde danach die Werte gesetzt werden und dann m_test der Liste Hinzugefügt wird klappt’s so wie gewünscht.

Was wir einer ArrayList per add eigentlich hinzugefügt ein Objekt oder eine Referenz auf ein Objekt?

Sorry für die Tippfehler. Ist etwas schwierig auf dem Mobilteil. Schon mal Danke für die Antworten von euch.

In Java wird nur mit Referenzen gearbeitet, meint, wenn du in mTest a veränderst, verändert sich auch das a von dem Objekt in deiner ArrayList, da nur Referenzen auf EIN Objekt gespeichert wurden.

Sollte es so sein, wie von dir beschrieben (a = nulll, nur in der ArrayList), poste mal deinen Code, das da oben compiliert bestimmt nicht :wink:

Gruß

Es werden nur Referenzen zur Liste hinzugefügt. Und so wie du das beschrieben hast, sollte es, soweit ich das verstehe, nicht sein (d.h. die Werte sollten nicht “null” sein). Eigentlich würde ich sagen: Poste mal ein KSKB. Aber… dann erübrigt sich die Frage. Und vermutlich müßtest du dir dafür erstmal einen Computer kaufen, der kein “Mobilteil” ist. :twisted: