Java Générique avec ArrayList <? s'étend A> ajouter un élément

J'ai des cours A, B, C et DB s'étend A, C s'étend A et D s'étend A.

J'ai le texte suivant ArrayLists chacune avec quelques éléments:

ArrayList<B> b;
ArrayList<? extends A> mix = b;

J'ai prévu pour la variable mix contenir des éléments de type B, C ou D. J'ai essayé d'ajouter un élément de type C en mix comme ceci:

mix.add(anElementOfTypeC);

Mais l'IDE ne m'autorise pas à le faire et il dit:

anElementOfTypeC ne peuvent être converties en CAP#1 par la méthode d'invocation
conversion où CAP#1 est un nouveau type de variable: CAP#1 s'étend à partir d'Un
capture d' ? s'étend Un

Ai-je utiliser le <? extends A> correctement? Comment puis-je résoudre ce problème?

  • À partir de votre code, extrait de mix est en fait un ArrayList<B> ici...
  • Au cours de votre recherche, - si vous avez fait certains, avez-vous venu à travers cette SORTE de question - stackoverflow.com/questions/1910892/... ?
InformationsquelleAutor vda8888 | 2013-01-13