Java无法自动推断泛型参数

Java无法自动推断泛型参数,java,generics,diamond-operator,Java,Generics,Diamond Operator,我已定义此方法: public static <E extends Comparable<E>> NavigableSet<E> navigableSet (List<E> l) 您可能需要编写set.navigableSet(新的ArrayList())这是因为协方差,如果可以的话,请在navigableSet方法中指定具体的ArrayList,或者在调用方法时将ArrayList转换为Array。我无法重现这一点NavigableSet=Se

我已定义此方法:

public static <E extends Comparable<E>> NavigableSet<E> navigableSet (List<E> l)

您可能需要编写
set.navigableSet(新的ArrayList())这是因为协方差,如果可以的话,请在navigableSet方法中指定具体的ArrayList,或者在调用方法时将ArrayList转换为Array。我无法重现这一点
NavigableSet=Sets.NavigableSet(新ArrayList())
编译得很好,而
navigableSet
的推断类型参数是
。您的java版本是什么?在OracleJDK11下会出现相同的错误。好吧,我在使用maven构建时发现它失败了。但是Eclipse编译器正确地推断了它。
NavigableSet<Integer> set = Sets.navigableSet(new ArrayList<Integer>());
NavigableSet<Integer> set = Sets.navigableSet(new ArrayList<>());
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)
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)