public class People {
class Family extends People {
}
}
public class Together {
private static ConcurrentMap<String, Collection<Family>> familyMap= new ConcurrentHashMap<String, Collection<Family>>();
private static ConcurrentMap<String, ConcurrentMap<String, Collection<People>>> registry2 = new ConcurrentHashMap<String, ConcurrentMap<String, Collection<People>>>();
static {
registry2.put(Family.class.toString(), familyMap);
}
}
(я уже попытался изменить декларацию registry2
к тому ? extends People
Вставить хэш-карту в хэш-карту?
Ошибка: The method put(String, ConcurrentMap<String,Collection<People>>) in the type Map<String,ConcurrentMap<String,Collection<People>>> is not applicable for the arguments (String, ConcurrentMap<String,Collection<Family>>)
Как я могу поместить familyMap
в registry2
HashMap
'Коллекция' не '' Коллекция : HTTP://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-javas-generics-implicitly-p –
assylias
Я пробовал, что это тоже не нравится. Я понимаю, что гериархия полиморфизма не то же самое с дженериками. Есть ли другой способ помещать familyMap в реестр2? –
Пожалуйста, прочитайте ответы на свои вопросы [здесь] (http://stackoverflow.com/q/17196851/1237040) и [здесь] (http://stackoverflow.com/q/17200675/1237040). Почему вы повторяете одни и те же ошибки снова и снова? «Java Generics НЕ ковариантны!» –