为什么编译器能够String
在函数返回类型的情况下正确推断类型参数。
public class Generics {
private static List<String> function() {
return new ArrayList<>();
}
}
但是当要推断的类型是方法参数时它会失败:
public class Generics {
public static void main(String[] args) {
method(new ArrayList<>());
}
private static void method(List<String> list) {
}
}
这种情况下的错误是:
The method method(List<String>) in the type Generics is not applicable
for the arguments (ArrayList<Object>)