2016-04-11 19 views
0

Hallo, ich habe eine Frage zu ArrayList in Java.JAVA - über ArrayList

Ich habe in einer Klasse namens "Utente" eine ArrayList ricFriends; Jetzt , das Problem ist, dass ich eine Methode namens

requestFriendship(Utente u) 

, wo ich das Objekt Utente in den u.ricFriends hinzufügen möchten, dass die Methode aufrufen ...

ich auf diese Weise versucht, aber es ist bei 99% falsch ..

public void requestFriendship(Utente u){ 
    u.ricFriends.add(this); 
} 

zum Beispiel möchte ich dies tun:

Utente Gary = new Utente(); 
Utente Mike = new Utente(); 

Gary.requestFriendship(Mike); 

A Und wenn ich Mike.ricFriends überprüfe, kann ich das Objekt Gary sehen;

Sorry für das Englisch, danke.

+0

Gemäß Ihrer Beschreibung funktioniert requestFriendship korrekt: Das Objekt, für das Sie diese Methode aufrufen, wird der Liste hinzugefügt, die dem Parameter Utente gehört. – laune

+0

Was genau ist deine Frage? – slartidan

+0

Das sieht so aus als ob es funktionieren sollte, was ist daran falsch? –

Antwort

2

nicht sicher, was Sie zu tun versuchen, aber Sie sollten diese Zeile ändern:

u.ricFriends.add(this); 

hierfür:

this.ricFriends.add(u) 
0

Zu allererst Sie ein Attribut öffentlich zu machen, das ist keine gute Praxis in der OO-Programmierung, sollten Sie Methoden zum Abrufen und Festlegen erstellen.

Über Sie Problem, könnte man es so etwas tun:

ArrayList<Utente> utenteList = u.getRicFriends(); 

utenteList.add(Mike); 

Achten Sie darauf, über „dieses“ Zeiger „das“ bedeuten, dass Sie das Objekt verweisen selbst einnehmen.

+1

Das Zurückgeben von änderbaren Listen wird auch oft als schlechte Übung in der OO-Programmierung angesehen. Ich würde eine 'addRicFriend (Mike)' Methode bevorzugen. Dies würde Änderungen in u leichter machen - das interne Detail, ob ricFriends ein Array, eine ArrayList oder irgendetwas anderes ist gekapselt. – slartidan