La méthode add(capture#2-of ? extends IObject) dans le type List n'est pas applicable pour les arguments (IDerived)
protected List<? extends IObject> getObjects()
{
List<? extends IObject> objects = new ArrayList<IObject>();
for (String id: item_ids)
{
IDerived object = (IDerived) readObject(id);
objects.add(object); #error
}
return objects;
}
interface IDerived extends interface IVersionedObject extends interface IObject
Si je change le type des objets en Liste, l'erreur disparaît, ce qui n'a aucun sens car il faut effectuer exactement le même cast vers le type de retour de la fonction.