Почему оператор ромба не работает в вызове addAll () в Java 7?

Учитывая этот пример из учебного пособия по обобщениям .

List list = new ArrayList<>();
list.add("A");

// The following statement should fail since addAll expects
// Collection

list.addAll(new ArrayList<>());

Почему последняя строка не компилируется, когда кажется, что она должна компилироваться. Первая строка использует очень похожую конструкцию и компилируется без проблем.

Пожалуйста, объясните подробно.

11
задан Joachim Sauer 26 September 2011 в 13:28
поделиться