public class StrangeParamMethod {
static void f(ArrayList<String> list){};
public static void main(String... args){
ArrayList<String> list = new ArrayListGenerator().list(); //assigns without problems
f(new ArrayListGenerator().list()); //compile error
}
}
class ArrayListGenerator {
<K> ArrayList<K> list(){
return new ArrayList<K>();
}
}
请告诉我,为什么我在指向的字符串处出现编译错误,而在字符串上没有出现问题时。我知道如何解决该编译错误,但我想知道为什么在这种特殊情况下会有这种差异。
PS我知道编译错误可以通过f(new ArrayListGenerator().<String>list());