Genéricos de Java: firma Collections.max () y comparador
Yo entiendo elprincipio de poner y poner para colecciones: si un método toma una colección en la que escribirá un tipo T, el parámetro debe serCollection<? super T>
, mientras que si leerá un tipo T, el parámetro debe serCollection<? extends T>
.
Pero, ¿podría alguien explicarme elCollections.max()
firma:
public static <T> T max(Collection<? extends T> coll,
Comparator<? super T> comp)
En particular por qué esComparator<? super T>
en lugar deComparator<? extends T>
?