Java unchecked conversion
J'ai la ligne suivante de code
this.htmlSpecialChars = this.getSpecialCharMap();
où
private HashMap<String,String> htmlSpecialChars;
mais je reçois un message d'avertissement à propos d'un unchecked conversion. Comment puis-je arrêter cet avertissement?
Ce type ne
En ajoutant
ça y est! Il était de retour d'une HashMap pas HashMap<String, String> Merci
Merci de ne pas supprimer les avertissements utiles! / (Avez-vous envisagé d'utiliser
Même alors, il serait l'élever avertissement si c'est un non qualifiés de type générique. Le problème ici, ce sont les manquants type d'arguments sur le type de retour de la méthode.
getSpecialCharMap()
retour?En ajoutant
SuppressWarnings("unchecked")
?ça y est! Il était de retour d'une HashMap pas HashMap<String, String> Merci
Merci de ne pas supprimer les avertissements utiles! / (Avez-vous envisagé d'utiliser
Map
le type de référence au lieu de HashMap
?)Même alors, il serait l'élever avertissement si c'est un non qualifiés de type générique. Le problème ici, ce sont les manquants type d'arguments sur le type de retour de la méthode.
OriginalL'auteur Jim Jeffries | 2011-03-15
Vous devez vous connecter pour publier un commentaire.
Vous obtenez ce parce que getSpecialCharMap() retourne un objet dont le type ne peut pas être vérifié par le compilateur pour être HashMap< String, String>. Aller de l'avant et de fournir le prototype pour getSpecialCharMap.
OriginalL'auteur broc
Vous obtenez l'avertissement, car le compilateur ne peut pas vérifier que l'affectation à
htmlSpecialChars
est une HashMap<String,String>, puisque la méthode getSpecialChars() retourne une plaine, non générique HashMap.Vous devez modifier votre méthode pour retourner spécifiques de type générique:
OriginalL'auteur Lawrence Dol
Le meilleur moyen sera de modifier de retour de votre méthode de numberMap du type ou de cette façon - veuillez noter que c'est vraiment de la mauvaise pratique. Ne le dites à personne que je vous ai montré ceci:
Exemple avec unchecked conversion avertissement:
Exemple sans avertissement:
private static HashMap<String,String> getSpecialCharMap()
à droite, j'ai édité le post
OriginalL'auteur lukastymo
Est le type de retour de
getSpecialCharMap()
non générique HashMap? Unchecked conversion d'avertissement se produit généralement en raison de Type de l'Effacement dans les Génériques. Pour contourner ce problème, vous devez annonate la méthode avec@SuppressWarnings("unchecked")
ou de changer le type de retour degetSpecialCharMap()
àHashMap<String, String>
.OriginalL'auteur Piyush Mattoo
Précéder la ligne avec:
Cela va désactiver le message d'avertissement du compilateur.
OriginalL'auteur Matthew