作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想声明两个方法。其中一个应该打印 List,另一个应该打印 List>。所以我声明了以下代码,但它们有问题。有没有人可以帮我解决这个问题。
/* 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) + "]");
}
最佳答案
如果编译器不知道该类型具有嵌套列表,则存在当第二个方法实际上是第一个类型时调用第二个方法的风险。
我会把它们结合起来
public static <T> void print(Collection<T> set) {
if (set == null) {
System.out.print("null");
return;
}
System.out.print("[ ");
String sep = "";
for (T t : set) {
System.out.print(sep);
sep = ", ";
if (t instanceof Collection) {
print((Collection) t);
} else {
System.out.print(t);
}
}
System.out.print(" ]");
}
public static <T> void println(Collection<T> set) {
print(set);
System.out.println();
}
关于java - 如何使这两个java泛型方法声明在同一个类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42329767/
我是一名优秀的程序员,十分优秀!