Creo que el título debe explicar todo, pero por si acaso ...¿Cuáles son los riesgos de invocación explícita desde una lista de tipo List <? extiende MyObject> a una lista de tipo List <MyObject> en Java?
Quiero saber qué riesgos y problemas potenciales relacionados con la fundición pueden surgir a partir del siguiente fragmento de código Java:
List<? extends MyObject> wildcardList = someAPI.getList();
List<MyObject> typedList = (List<MyObject>) wildcardList;
Mi opinión es que todos los objetos de la wildcardList deberían ser una instancia de MyObject (tipo o subclase exacto) y, por lo tanto, siempre que se recuperen objetos de typedList, nunca debería haber una ClassCastException. ¿Es esto correcto? Si es así, ¿por qué el compilador genera una advertencia?
sí. Thomas es absolutamente correcto – Neel