Присвоение списка целых чисел списку строк

Я изучал 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

Почему я не получаю никакой ошибки?

Ответы на вопрос(5)

Ваш ответ на вопрос