Присвоение списка целых чисел списку строк
Я изучал Generics в 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
}
И в главном классе вызвать метод со списком Integer Я не получаю никакой ошибки.
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
Почему я не получаю никакой ошибки?