Ограниченная карта не работает для Списка, вставленного в Карту - PullRequest
2 голосов
/ 04 октября 2011

Следующий код объясняет мою проблему:

interface f1 {}

interface f2 extends f1{}


1. List<? extends f1> l1 = new ArrayList<f2>();

2. Map<String, ? extends f1> m1 = new HashMap<String, f2>();

3. Map<String, List<? extends f1>> m2 = new HashMap<String, List<f2>>();

Нет. 1 и 2 работают, но нет. 3 дает ошибку при затмении. Там написано: Type mismatch: cannot convert from HashMap<String,List<f2>> to Map<String,List<? extends f1>> Не могли бы вы помочь мне выяснить, почему.

1 Ответ

3 голосов
/ 04 октября 2011

Использование

Map<String, ? extends List<? extends f1>> m2 = new HashMap<String, List<f2>>();
...