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 ループとインクリメント er を使用してリストを作成できます。私は文字列ビルダーが好きで、それを使って派手なことをすることができますが、文字列を取得して「+」を追加するだけでも問題なく機能します。幸運を祈ります。

編集:投稿して申し訳ありませんが、入力中に机から引き離されたときに回答がありました.

于 2013-04-09T18:34:49.333 に答える