Я определил этот метод:
public static <E extends Comparable<E>> NavigableSet<E> navigableSet (List<E> l)
Когда я пишу:
NavigableSet<Integer> set = Sets.navigableSet(new ArrayList<Integer>());
Все хорошо, но если я напишу это вместо:
NavigableSet<Integer> set = Sets.navigableSet(new ArrayList<>());
Java не может автоматически определить тип Integer. Я получаю следующую ошибку:
error: no suitable method found for navigableSet(ArrayList<Object>)
NavigableSet<Integer> set = Sets.navigableSet(new ArrayList<>());
^
method Sets.<E#1>navigableSet(List<E#1>) is not applicable
(inferred type does not conform to equality constraint(s)
inferred: E#2
equality constraints(s): E#3)
Почему? Что мешает Java сделать правильный вывод?
Моя версия Java:
openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.5+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.5+10, mixed mode)