1

在我的程序中,我复制并粘贴了代码(显然是不允许的),因为我还没有弄清楚如何将我想要的参数传递给这个方法:

public String collectionToFormattedString() {
    String combined = "";
    for (Book b : LibObj.books) {
        combined =  combined + b.toString() + "<br />";
    }
    combined = "<HTML>" + combined +"</HTML>";
    return combined;
}

我想传递参数来执行以下操作:

public String collectionToFormattedString(Object? XYZ, ArrayList ABC) {
    String combined = "";
    for (XYZ b : ABC) {
        combined =  combined + b.toString() + "<br />";
    }
    combined = "<HTML>" + combined +"</HTML>";
    return combined;
}

我该怎么做呢?

4

2 回答 2

8

你可以这样做:

public <T> String collectionToFormattedString(T XYZ, List<T> ABC) {
    String combined = "";
    for (T b : ABC) {
        combined =  combined + b.toString() + "<br />";
    }
    combined = "<HTML>" + combined +"</HTML>";
    return combined;
}

编辑

我刚刚意识到您甚至没有使用第一个参数,并且正如@rgettman 指出的那样,您没有使用任何特定于 的操作T,因此您可以将其简化为:

public String collectionToFormattedString(final List<?> list) {
    StringBuilder combined = new StringBuilder("<HTML>");
    for (Object elem : list) {
        combined.append(elem.toString()).append("<br />");
    }
    combined.append("</HTML>");
    return combined.toString();
}
于 2013-04-09T18:04:35.027 回答
1
public <T> String collectionToFormattedString(List<Book> XYZ) 
{
    StringBuilder combined = new StringBuilder();
    combined.Append("<HTML>");
    foreach (Book b in XYZ)
    {
        combined.Append(b.ToString() + "<br />");
    }
    combined.Append("</HTML>");

    return combined;
}

从外观上看,您只需要制作一个书籍集合,然后通过该集合。如果您不喜欢列表,则可以使用带有增量器的 for 循环来使用数组。我喜欢字符串生成器,可以让你用它做一些花哨的事情,但是只需将一个字符串和 '+' 加在一起也可以。祝你好运。

编辑:很抱歉这个帖子,当我在打字过程中被拉离办公桌时得到了回答。

于 2013-04-09T18:34:49.333 回答