Я пытаюсь поместить объект подкласса в список, но я не могу этого сделать из-за ошибки компилятора, упомянутой в качестве комментария. Может кто-нибудь указать, что это правильный способ сделать это на Java?Добавить родительский объект в список <? extends Parent> - Java
public class Animal { }
class Util {
private Map<Class<? extends Animal>, List<? extends Animal>> animalListMap;
public void registerAnimal(Class<? extends Animal> animalClass, Animal animalObject) {
if (animalListMap.containsKey(animalClass)) {
//Append to the existing List
List<? extends Animal> animalList = animalListMap.get(animalObject);
animalList.add(animalObject); //COMPILE ERROR- The method add(capture#3-of ? extends Animal) in the type List<capture#3-of ? extends Animal> is not applicable for the arguments (Animal)
} else {
// and the new entry
List<Animal> vos = new ArrayList<Animal>();
vos.add(animalObject);
animalListMap.put(animalClass, vos);
}
}
}
В качестве побочного примечания 'animalListMap.get (animalObject)' должно быть 'animalListMap.get (animalClass)'. –
Вы передаете экземпляр объекта, вместо объекта класса –
animalListMap.get (animalObject); должен быть animalListMap.get (animalClass); –