Например, метод проверки в java.util.Collections
public static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
Почему я могу определить его следующим образом:
public static <T> int binarySearch(List<T> list, T key, Comparator<T> c)
Почему это не будет работать в Java?