2016-04-11 11 views
0

こんにちは、私はJavaのArrayListについて質問があります。JAVA - About ArrayList

私は「Utente」のArrayList ricFriendsと呼ばれるクラスを持っています。 が今、問題は...私はu.ricFriendsでメソッドを呼び出すオブジェクトUtenteを追加したい

requestFriendship(Utente u) 

というメソッドを持っていることを

である私は、このようにしてみましたが、それはです間違っ99%...例えば

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

で私はこれをしたい:

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

Gary.requestFriendship(Mike); 

Aもし私がMike.ricFriendsをチェックすれば、私はオブジェクトGa​​ryを見ることができます。

ご迷惑をおかけして申し訳ありません。ありがとうございました。

+0

あなたの説明をよると、requestFriendshipは正常に動作します:あなたは、このメソッドを呼び出すためのオブジェクトがUtenteパラメータが所有しているリストに追加されます。 – laune

+0

あなたの質問は何ですか? – slartidan

+0

それはうまくいくように見えますが、何が問題なのですか? –

答えて

2

ないあなたがやろうとしているが、あなたは、この行を変更すべきかを確認します。このため

u.ricFriends.add(this); 

:すべての

this.ricFriends.add(u) 
0

まず、あなたが属性を公開を作っている、それはですOOプログラミングの良い習慣ではないので、getメソッドとsetメソッドを作成する必要があります。 「この」ポインタについて

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

utenteList.add(Mike); 

世話、「この」あなたは、オブジェクトが自分自身を参照して取っていることを意味:

はあなたの問題について、あなたはそれをこのような何かを行うことができます。

+1

変更可能なリストを返すことは、OOプログラミングではしばしば悪い習慣とみなされます。私は 'addRicFriend(Mike)'メソッドを好むでしょう。これは、 'u'の変更を容易にします - 内部の詳細、ricFriendsがArrayかArrayListなのか、他のものがカプセル化されているのかどうか。 – slartidan