Eclipse me donne un avertissement du formulaire suivant:
Sécurité du type: conversion non contrôlée de l'objet vers HashMap
C'est à partir d'un appel à une API que je n'ai aucun contrôle sur lequel retourne Object:
HashMap<String, String> getItems(javax.servlet.http.HttpSession session) {
HashMap<String, String> theHash = (HashMap<String, String>)session.getAttribute("attributeKey");
return theHash;
}
J'aimerais éviter les avertissements Eclipse, si possible, car ils indiquent théoriquement au moins un problème de code potentiel. Cependant, je n'ai pas encore trouvé un bon moyen d'éliminer celui-ci. Je peux extraire la seule ligne impliquée vers une méthode par elle-même et ajouter @SuppressWarnings("unchecked")
à cette méthode, limitant ainsi l'impact d'avoir un bloc de code où j'ignore les avertissements. De meilleures options? Je ne veux pas désactiver ces avertissements dans Eclipse.
Avant d'arriver au code, il était plus simple, mais provoquait toujours des avertissements:
HashMap getItems(javax.servlet.http.HttpSession session) {
HashMap theHash = (HashMap)session.getAttribute("attributeKey");
return theHash;
}
Le problème était ailleurs lorsque vous essayez d'utiliser le hachage, vous obtenez des avertissements:
HashMap items = getItems(session);
items.put("this", "that");
Type safety: The method put(Object, Object) belongs to the raw type HashMap. References to generic type HashMap<K,V> should be parameterized.
enum
ou même des instances de Class<T>
), afin que vous puissiez la regarder et savoir qu'elle est sûre.