public static lt; void bubbleSort(E[] lista, Comparatorlt;? super Egt; comparador)
La sintaxis de super T restringe una clase genérica a todas las superclases de T (incluido el propio T), pero sólo en los argumentos, no en los valores de retorno. Por ejemplo, si E se establece en Cadena, el Comparador puede ser Comparador o Comparador, pero Comparador no funcionará
El código fuente jdk se muestra a continuación.
public TreeSet(Comparatorlt;? super Egt; c)
Esto garantiza que el comparador pasado al constructor pueda comparar elementos E.