Cet avertissement est là parce que Java n'est pas réellement stocker des informations de type à l'exécution à un objet qui utilise des médicaments génériques. Ainsi, si object
est en fait un List<String>
, il n'y aura pas d' ClassCastException
au moment de l'exécution, sauf jusqu'à ce qu'un élément est accessible à partir de la liste qui ne correspond pas au type générique défini dans la variable. Cela peut entraîner des complications supplémentaires si des éléments sont ajoutés à la liste, avec cette erreur de type générique de l'information. Le code tenant toujours une référence à la liste, mais avec le bon type générique de l'information ont désormais incompatible liste. Pour supprimer l'avertissement, essayez:
List<?> list = (List<?>) object;
Toutefois, notez que vous ne serez pas en mesure d'utiliser certaines méthodes telles que l'ajout, car le compilateur ne sait pas si vous essayez d'ajouter un objet de type incorrect. Le ci-dessus ne fonctionne dans beaucoup de situations, mais si vous devez l'utiliser, ajouter, ou de certains de la même façon restreinte méthode, vous aurez juste à souffrir le jaune souligner dans Eclipse (ou un SuppressWarning
d'annotation).