公共静态ArrayList获取与循环

问题描述:

我是新来的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.*.com/q/326569/3788176) –

+0

你具体是指“静态ArrayList的方法”,你是什么意思必须处理循环? –

+2

看起来你错过了if语句中的'}' –

你几乎在那里,你只需要定义一个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; 

看来,你在你的代码所缺少几个支架

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