这实现如下(jdk1.6.0_31):
private static class ReverseComparator
implements Comparator>, Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 7207038068494060240L;
public int compare(Comparable c1, Comparable c2) {
return c2.compareTo(c1);
}
private Object readResolve() { return reverseOrder(); }
}
为什么不能实现如下:
private static class ReverseComparator>
implements Comparator, Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 7207038068494060240L;
public int compare(T c1, T c2){
return c2.compareTo(c1);
}
...
}
它只是风格,还是有更深层次的原因?
编辑:显示的源代码来自Sun / Oracle jdk((jdk1.6.0_31)).