我有这样的事情:
0
我还有一堆HashSet集合,这些集合在程序的过程中会慢慢填充,例如:
public class A implements Comparable<A> {
...
@Override
public int compareTo(A obj) {
...
}
}
public class B implements Comparable<B> {
...
@Override
public int compareTo(B obj) {
...
}
}
在程序的最后,我想将它们转换为已排序的列表,以便它们可以按顺序显示:
private Collection<A> col = new HashSet<A>();
不幸的是我得到了编译错误:
public class Utils {
public static <T> Collection<Comparable<T>> toSortedList(Collection<Comparable<T>> col) {
List<Comparable<T>> sorted = new ArrayList<Comparable<T>>(col);
Collections.sort(sorted);
return sorted;
}
}
我如何修改上述所有HashSets的Comparable&lt; A&gt;和可比较的&lt; B&gt;可以传递给这个方法吗?谢谢!
答案 0 :(得分:3)
使用<T extends Comparable<? super T>>
通用语法:
public class Utils {
public static <T extends Comparable<? super T>> Collection<T> toSortedList(Collection<T> col) {
List<T> sorted = new ArrayList<T>(col);
Collections.sort(sorted);
return sorted;
}
}