Juste allé à travers la Java 7 java.util.Collections
classe de mise en œuvre, et a vu quelque chose que je ne comprends pas en fonction max signature, pourquoi T est délimité par l'Objet ?
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) {
Iterator<? extends T> i = coll.iterator();
T candidate = i.next();
while (i.hasNext()) {
T next = i.next();
if (next.compareTo(candidate) > 0)
candidate = next;
}
return candidate;
}
Pourquoi ne pas omettre l'objet de limites?
public static <T extends Comparable<? super T>> T max(Collection<? extends T> coll) {
Iterator<? extends T> i = coll.iterator();
T candidate = i.next();
while (i.hasNext()) {
T next = i.next();
if (next.compareTo(candidate) > 0)
candidate = next;
}
return candidate;
}
Veuillez donner quelques exemples qui correspond à la méthode originale et non à la seconde.