创建一个方法,其参数是一个类和一个通用的ArrayList

时间:2013-04-09 18:03:07

标签: java class object methods arraylist

我的程序我有复制和粘贴代码(显然是禁忌),因为我还没想出如何将我想要的参数传递给这个方法:

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;
}

我该怎么做?

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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循环。我喜欢字符串构建器,让你用它做一些奇特的东西,但只需要一个字符串和'+'将它们加在一起也可以。祝你好运。

编辑:很抱歉这篇文章,当我在打字过程中被拉离办公桌时被解答了。