Выдержка из книги «Мышление на Java»:
Одна из жалоб на дженерики заключается в том, что она добавляет еще больше текста в ваш код.Подумайте об этом:
Map<Person, List<? extends Pet>> petPeople =
new HashMap<Person, List<? extends Pet>>();
Похоже, что вы повторяете себя, и что компилятор должен выяснить один из общих списков аргументов из другого.Увы, он не может , ...
Означает ли это, что явная спецификация типа с обеих сторон предписана компилятором?
Напротив, мне кажется, что он работает нормально (без явных указаний):
Map<Person, List<? extends Pet>> petPeople = new HashMap();