将整数列表分配到字符串列表中
我正在学习Java的泛型,我接近了一段非常有趣的代码。我知道在Java中,将一种类型的列表添加到另一种类型中是非法的。
List<Integer> integerList = new ArrayList<Integer>();
List<String> stringList=integerList;
所以在第二行中,我得到了一个编译时错误。
但是,如果我在这样的类中创建一个泛型方法,
class GenericClass <E>{
void genericFunction(List<String> stringList) {
stringList.add("foo");
}
// some other code
}
在主类调用具有整数列表的方法时,我没有收到任何错误。
public class Main {
public static void main(String args[]) {
GenericClass genericClass=new GenericClass();
List<Integer> integerList= new ArrayList<Integer>();
integerList.add(100);
genericClass.genericFunction(integerList);
System.out.println(integerList.get(0));
System.out.println(integerList.get(1));
}
}
输出
100
foo
为什么我没有得到任何错误?