J'utilise @SuppressWarnings("unchecked")
et @SuppressWarnings("null")
surtout les méthodes ci-dessus pour laisser le code se compiler sans aucun avertissement mais j'ai mes doutes. Trouvé cette question Stackoverflow . Jon Skeet y a écrit une réponse que je trouve intrigante.
Selon lui,
Parfois, les génériques Java ne vous permettent tout simplement pas de faire ce que vous voulez, et vous devez dire au compilateur que ce que vous faites sera vraiment légal au moment de l'exécution.
Mais que se passe-t-il s'il y a une chance qu'une exception soit levée? La suppression des avertissements n'est-elle pas alors une mauvaise idée? Ne devrais-je pas être conscient des endroits où des problèmes pourraient surgir?
De plus, que se passe-t-il si quelqu'un d'autre modifie mon code plus tard et ajoute des fonctionnalités discutables sans supprimer SuppressWarnings? Comment éviter cela et / ou existe-t-il une autre alternative à cela?
Dois-je utiliser @SuppressWarnings("unchecked")
et @SuppressWarnings("null")
?
Mise à jour # 1
En ce qui concerne les conversions de type non contrôlées, selon cette réponse (soulignée par @gnat dans les commentaires ci-dessous), la suppression de ces avertissements est nécessaire.
De nombreuses bibliothèques Java indispensables n'ont jamais été mises à jour pour éliminer le besoin de transtypages non sécurisés. La suppression de ces avertissements est nécessaire pour que d'autres avertissements plus importants soient remarqués et corrigés.
En cas de suppression d'autres avertissements, toujours dans une zone grise.
Mise à jour # 2
Selon Oracle Docs (également mentionné par certaines réponses ci-dessous):
Pour des raisons de style, les programmeurs doivent toujours utiliser cette annotation sur l'élément le plus profondément imbriqué où elle est efficace. Si vous souhaitez supprimer un avertissement dans une méthode particulière, vous devez annoter cette méthode plutôt que sa classe.