Vous pouvez utiliser l' @SuppressWarnings("unchecked")
qui est pris en charge par l'éclipse et d'un compilateur javac.
Mais n'oubliez pas l' @SuppressWarnings
d'annotation est utilisée par le compilateur, qui peut avoir ses propres valeurs. Le JLS ne force le compilateur à comprendre les valeurs "unchecked" et "obsolète" (pour l'instant).
Éditeurs de compilateurs doivent documenter l'avertissement noms qu'ils soutiennent en conjonction avec ce type d'annotation. Ils sont encouragés à coopérer afin de s'assurer que les mêmes noms de travailler sur plusieurs compilateurs.
Si vous utilisez Helios, vous aurez besoin de mettre une option spécifique pour permettre l' @SuppressWarnings("unchecked")
au lieu de @SuppressWarnings("rawtypes")
,
Dans le cas où il n'est pas possible de mettre à jour le code avec le nouveau jeton, l' suppressRawWhenUnchecked=true
système de propriété peut être définie lors du démarrage d'Eclipse.
Ressources :
EDIT: Voici le maintenant indisponible knol article qui a été utilisé comme référence, à l'origine écrit par Alex Miller.
@SuppressWarnings Annotations en Java
Annotation Standard pour la suppression de diverses mises en garde
Le SuppressWarnings annotation a été ajouté comme une annotation standard en Java SE 5.
Définition
Le @SuppressWarnings annotation est définie dans le Langage Java Specification section 9.6.1.5. Cet article stipule:
Le type d'annotation SuppressWarnings
prend en charge programmeur de contrôle sur les mises en garde contraire émis par le compilateur Java. Il contient un seul élément qui est un tableau d' String
. Si un programme de déclaration est annoté avec l'annotation @SuppressWarnings(value = {S1, ... , Sk})
, puis d'un compilateur Java ne doit pas rapporter aucun avertissement identifié par l'un des S1, ... , Sk, si cet avertissement aurait été créé suite à annotées de la déclaration ou de l'une de ses parties.
Décoché les avertissements sont identifiés par la chaîne de caractères "unchecked
".
Le subséquente de l'article sur @Deprecation
mentionne également que ces avertissements peut être supprimé avec @SuppressWarnings("deprecation")
.
Valide Les Types D'Avertissement
Les deux seuls avertissement chaînes qui sont mentionnés dans le cahier des charges lui-même sont "unchecked" et de "dépréciation". Cependant, le JDK Sun utilise un plus grand ensemble de chaînes dans le compilateur. Vous pouvez déterminer l'ensemble actuel en exécutant:
javac -X
qui va vous montrer (entre autres choses) les paramètres valides pour -Xlint.
Par exemple, Sun JDK 1.5 montre:
- tous - de supprimer tous les avertissements de ce code
- dépréciation - supprimer les avertissements de l'utilisation de code obsolète
- décoché - supprimer les avertissements de décoché un appel ou un décoché cast
- fallthrough - supprimer les avertissements si un commutateur tombe à travers, sans trouver un cas valide (et non par défaut)
- le chemin d'accès
- série - supprimer les avertissements si une classe Sérialisable ne définit pas un serialVersionUID
- enfin - supprimer les avertissements de retour dans une enfin (qui ignore retour avec le coup d'essayer)
Et Sun JDK 1.6 ajoute:
- cast
- divzero - supprimer les avertissements si integer division par zéro est détecté
- vide
- remplace
- aucun
IDEs et les outils d'analyse statique prennent généralement en charge d'un grand nombre de valeurs possibles pour @SuppressWarnings. Ces valeurs correspondent à des analyses statiques contrôles effectués par les IDE.
Eclipse
L'Éclipse avertissement valeurs pour Eclipse 3.3 sont documentées dans le JDT docs.
- tous - de supprimer tous les avertissements
- boxe - supprimer les avertissements relatifs à boxing/unboxing opérations
- la fonte de supprimer les avertissements relatifs à des opérations de transtypage
- dep-ann - supprimer les avertissements relatifs à déconseillé d'annotation
- dépréciation - supprimer les avertissements relatifs à la dépréciation
- fallthrough - supprimer les avertissements relatifs manque de pauses dans les instructions switch
- enfin - supprimer les avertissements relatifs à bloc final de ne pas revenir
- cacher - supprimer les avertissements relatifs à la population locale, qui cachent une variable
- incomplet-commutateur - de supprimer les mises en garde par rapport à des entrées manquantes dans une instruction switch (enum cas)
- nls - supprimer les avertissements relatifs à la non-nls littéraux de chaîne
- null - supprimer les avertissements relatifs à la valeur null analyse
- restriction - de supprimer les mises en garde relatives à l'utilisation de déconseillée ou interdite références
- série - supprimer les avertissements relatifs à manquantes champ serialVersionUID pour une classe sérialisable
- statique-accès - supprimer les avertissements relatifs à une mauvaise statique d'accès
- synthétique-accès - supprimer les avertissements relatifs à unoptimized accès depuis le centre-classes
- décoché - supprimer les avertissements relatifs aux opérations décoché
- sans réserve-domaine-accès - supprimer les avertissements relatifs à l'accès à un champ non qualifiés
- inutilisé - supprimer les avertissements relatifs à code inutilisé
IntelliJ
NetBeans
Exemples
Un exemple de spécification d'un seul avertissement:
@SuppressWarnings("unchecked")
public void methodWithScaryWarnings() {
List rawList = new ArrayList();
List<String> stringList = (List<String>)rawList;
}
Un exemple d'utilisation de deux mises en garde:
@SuppressWarnings({"unchecked","deprecation"})
public void methodWithScaryWarnings() {
callDeprecatedMethod();
}