2017-10-18 158 views
-2

我是新來的Java和我卡在一個點,我應該完成一個靜態ArrayList方法;我必須使用for循環。我試圖問幾個人,但我根本不明白該怎麼做。公共靜態ArrayList獲取與循環

它看起來像這樣(我應該去完成它)

public static ArrayList<Message> getMessagesTo(Person recipient) { 
    ArrayList<Message> allMessages = getMessages(); 
    return allMessages; 
} 

,到目前爲止,我所做的就是這個

public static ArrayList<Message> getMessagesTo(Person recipient) { 
    ArrayList<Message> allMessages = getMessages(); 
    for(Message message : allMessages) { 
     System.out.println(message.getMessageBody()); 

     if(message.getRecipient().getName().equals(recipient)) { 
      getMessagesTo(recipient); 


    } 
      return allMessages; 

(BlueJ的),然後說:「缺少return語句「但我知道我的錯誤在這個部分:

if(message.getRecipient().getName().equals(recipient)) { 
       getMessagesTo(recipient); 


      } 
+1

[在什麼情況下我可以補充「緊急」或其他類似短語到我的問題,爲了獲得更快的答案?](https://meta.stackoverflow.com/q/326569/3788176) –

+0

你具體是指「靜態ArrayList的方法」,你是什麼意思必須處理循環? –

+2

看起來你錯過了if語句中的'}' –

回答

0

你幾乎在那裏,你只需要定義一個ArrayList,添加元素,並返回它,如:

public static ArrayList<Message> getMessagesTo(Person recipient) { 
ArrayList<Message> allMessages = getMessages(); 
ArrayList<Message> messagesToPerson = new ArrayList<Message>(); 
for(Message message : allMessages) { 
    System.out.println(message.getMessageBody()); 

    if(message.getRecipient().getName().equals(recipient)) { 
     messagesToPerson.add(message); 
    } 
} 
return messagesToPerson; 
0

看來,你在你的代碼所缺少幾個支架

public static ArrayList<Message> getMessagesTo(Person recipient) { 
    ArrayList<Message> allMessages = getMessages(); 
    for(Message message : allMessages) { 
     System.out.println(message.getMessageBody()); 

     if(message.getRecipient().getName().equals(recipient)) { 
      getMessagesTo(recipient); 
     } 
    } 
    return allMessages; 
} 
+0

爲什麼不是它的'if(message.getRecipient()。getName()。equals(recipient.getName()))' – Omore

+0

是的,這是正確的比較兩個.getName() – Franklin216