-Xlint

Résolu
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 28 oct. 2006 à 00:14
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 28 oct. 2006 à 01:07
Salut :

            

Le compilateur m'affiche se message :


C:\> javac Test.java


Note: Test.java uses unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.


Mais en revanche le programme se compile et s'exécute.

Quelles sont les causes susceptibles d'engendrer ce genre de messages?


______________________________________________________________

A.B. :


Toutes choses sont difficiles avant que d'être faciles.

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
28 oct. 2006 à 00:34
Salut,

cela veux dire de tu utilise du code unchecked exemple si tu fais:

import java.util.Vector;

public class Test{
   
    public Test(){
       //ici le code n'est pas sure et ne certifie pas que getVector retourne toujour un vecteur de string
        Vector<String> v = getVector();
    }
   
    public Vector getVector(){
        Vector v = new Vector();
        for(int i = 0; i < 10; i++)
           //vu que le vecteur n'est pas déclaré avec la syntax 1.5 mais compilé en 1.5 il est normale qu'il y ai aussi un warning
            v.add(""+i);
        return v;
    }
   
    public static void main(String args[]){
        new Test();
    }
}
compilation:
javac Test.java
Note: Test.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

maintenant compilation avec l'option:
javac  -Xlint Test.java
Test.java:5: warning: [unchecked] unchecked conversion
found   : java.util.Vector
required: java.util.Vector<java.lang.String>
                Vector<String> v = getVector();
                                            ^
Test.java:11: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Vector
                        v.add(""+i);
                             ^
2 warnings

une solution proposée par la jvm est d'ajouter l'annotation @SuppressWarnings("unchecked") mais à éviter le plus possible....

exemple :

import java.util.Vector;

public class Test{
    @SuppressWarnings("unchecked")
    public Test(){
        Vector<String> v = getVector();
    }
   
    @SuppressWarnings("unchecked")
    public Vector getVector(){
        Vector v = new Vector();
        for(int i = 0; i < 10; i++)
            v.add(String.valueOf(i));
        return v;
    }
   
    public static void main(String args[]){
        new Test();
    }
}

cela dis il existe plein d'autres cas ou tu risques de d'avoir ce type de warning.....

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Rejoignez-nous