Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 ..."
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 28 oct. 2006 à 01:07
Salut :
Tu as parfaitement raison, j'utilise dans mon code la classe Vector.
J'ai frappé deux oiseaux avec une seule pierre :
1. Merci, pour le '@SuppressWarnings("unchecked")'.
2. Merci, votre exemple est instructif. J'ai placé le type exacte devant chaque déclaration de Vector et ça marché. (