java.util.CollectionsIch habe gerade die Implementierung der Java 7- Klasse durchlaufen und etwas gesehen, das ich nicht verstehe. maxWarum ist in der Funktionssignatur Tbegrenzt durch Object?
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;
}
max scheint gut zu funktionieren, wenn das gebundene Objekt weggelassen wird.
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;
}
Gibt es tatsächlich Situationen, in denen die Grenze einen Unterschied macht? Wenn ja, geben Sie bitte ein konkretes Beispiel an.