Рассмотрим ниже метод doSomething(List<Object>), который принимает List<Object> как параметр.
private void doSomething(List<Object> list) {
// do something
}
Теперь рассмотрим ниже фрагмент кода, который пытается вызвать doSomething(), где я пытаюсь передать List<String> в doSomething()
List<Object> objectList;
List<String> stringList;
doSomething(stringList); // compilation error incompatible types
doSomething(objectList); // works fine
Даже ниже код генерирует ошибку компиляции
objectList = stringList; // compilation error incompatible types
Мой вопрос: почему List<String> не может быть передан методу, который принимает List<Object>?