Java :о реализации обратного компаратора коллекций

Это реализовано следующим образом (jdk1.6.0 _31):

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);
    }
   ...
}

Это просто стиль или есть более глубокая причина?

РЕДАКТИРОВАТЬ :показан исходный код из Sun/Oracle jdk ((jdk1.6.0 _31 )).

6
задан shrini1000 25 April 2012 в 11:36
поделиться