Question

Y at-il drapeau de compilateur Java que l'on peut passer à dire au compilateur d'interdire l'utilisation des types premières? C'est, pour une classe générique, que la force du compilateur que la version paramétrés être utilisée, et lancer une erreur de compilation autrement?

Était-ce utile?

La solution

JDK7 (B38) introduit -Xlint:rawtypes . Comme mentionné ci-dessus, -Xlint:unchecked met en garde contre les conversions non vérifiées.

Maurizio Cimadamore de l'équipe javac a écrit un à ce sujet.

Autres conseils

Vous pouvez configurer l'utilisation des types bruts au sein d'Eclipse pour être un avertissement ou une erreur.

Il est sous Préférences / Java / compilateur / Erreurs et avertissements / types génériques / Utilisation d'un type brut.

javac n'a pas quelque chose comme ça aussi loin que je sache - même avec -Xlint:all vous ne recevez pas un avertissement pour quelque chose comme:

ArrayList x = new ArrayList();

Vous pouvez l'obtenir pour vous avertir via:

-Xlint: non cochée

Cela va générer d'alerte dans certains cas, mais pas tous, les cas de génériques manquants.

import java.util.ArrayList;
import java.util.List;

public class Main
{
    public static void main(final String[] argv)
    {
        List list = new ArrayList(); // no warning at all

        list.add("Hello"); // warning will be on this line
    }
}

Étant donné l'avertissement que vous pouvez revenir en arrière et corriger le code pour ajouter les génériques aux déclarations.

Pas idéal, et si je me souviens bien, il ne parvient toujours pas attraper tout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top