我想让我的班级返回一个值,但我想像循环一样更改该值。我认为我的代码会比我更好地解释它。

    public static String readChat(String value) throws Exception
{
    FormatS FormatS = new FormatS();

    BufferedReader mainChat = new BufferedReader(new FileReader("./chat.txt"));
    String str;
    while ((str = mainChat.readLine()) != null)
    {
        String msg = FormatS.FormatS(str, value);
    }
    mainChat.close();
return (msg);


不幸的是,由于不返回循环,因此仅返回最后一个,而仅返回循环中的最后一条消息,如何使它返回循环中的每个值作为单独的返回? (如果可以的话,在不影响其他类的情况下)

最佳答案

你不能Java方法仅返回一个值,不能多次返回。
在return语句之后,您将无法使用该方法!

您可以使用集合(例如,列表)来存储所有消息,然后返回列表。

http://download.oracle.com/javase/6/docs/api/java/util/Collection.html

在此处查看有关收藏的其他信息。如果您是Java的新手并计划坚持使用它,那么掌握:)是一个非常关键的方面。

您应该做的是实例化一个新的Collection,例如:

List<String> messageList = new ArrayList<String>();


然后在循环中,您将...

messageList.add(msg);


当然,对于大结局...

return messageList;


在“外部”方法(调用方)中,您可以遍历列表,并根据需要使用消息。

10-07 20:01
查看更多