Это реализуется следующим образом (jdk1.6.0_31):Java: о реализации Коллекции ReverseComparator
private static class ReverseComparator<T>
implements Comparator<Comparable<Object>>, Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 7207038068494060240L;
public int compare(Comparable<Object> c1, Comparable<Object> c2) {
return c2.compareTo(c1);
}
private Object readResolve() { return reverseOrder(); }
}
Почему она не может быть реализован следующим образом:
private static class ReverseComparator<T extends Comparable<T>>
implements Comparator<T>, 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);
}
...
}
Является ли это просто стиль , или есть какая-то более глубокая причина?
EDIT: исходный код показан с помощью Sun/Oracle jdk ((jdk1.6.0_31)).
Где именно находится этот код? Я не нахожу его в JDK, но есть много других мест. До сих пор никто не использовал дженерики. –
Я нашел его в jdk1.6.0_31, src.zip. – shrini1000
Но можете ли вы сказать мне, где именно? В каком классе? –