私は2つのメソッドを宣言したいと思います。そのうちの1人はListを印刷し、もう1人はList>を印刷します。だから私は次のコードを宣言したが、何か問題がある。誰も私がこの問題を解決するのを助けることができるでしょうか?これらの2つのJavaジェネリックメソッドを同じクラスで宣言する方法
/* print the List<List<String>> */
public static <T> void print(List<List<T>> set) {
if (set == null) return;
for (List<T> subSet : set) {
System.out.print("[");
for (int i = 0; i < subSet.size() - 1; i++) {
System.out.print(subSet.get(i) + ", ");
}
if (subSet.size() >= 1) {
System.out.print(subSet.get(subSet.size() - 1));
}
System.out.println("]");
}
}
/* print the List<String> */
public static <T> void print(List<T> set) {
if (set == null) return;
int size = set.size();
System.out.print("[");
for (int i = 0; i < size - 1; i++) {
System.out.print(set.get(i) + ", ");
}
System.out.println(set.get(set.size() - 1) + "]");
}
を組み合わせたでしょう、両方の方法はもちろん、コンパイラによって許可されていない 'プリント(リストセット)'になってしまいます。 – Kayaman
コンパイラから受け取ったエラーには、何が間違っているかが説明されています。エラーメッセージを読んでください。次に、最初のメソッドの名前をprintListOfLists(または好みの名前)に変更します。 –
私はそれらを1つの方法に組み合わせます。最初のものを意図したときに2番目のメソッドが呼び出されるリスクがあります。 –