Egalite non juste

Sofi -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
J'ai un bug depuis hier non compréhensible.J'ai tester 2 entier qui sont normalement égaux mais toujours la résultat de l'égalité est false.
voilà le code :
public boolean verifierCode(Integer code) throws SQLException 
    {
    	//boolean verif = false ;
    	ResultSet res=db.execute("select * from compte");
    	boolean verif=false;
    	
			while( res.next() && verif==false )
				 
				{
				Object cd=res.getObject("code");
				
				System.out.println("+++++++++"+(cd.equals(code)));
				if((cd)==(code))
				return verif=true;
				break;
				}
		return verif;

    		
    }

Et ici je fais l'appelle de ce code
	Integer code=Integer.parseInt(text_1.getText());
		    			System.out.println(code);
				    int nbessai=0;
				   
					
				
				   
				   		System.out.println(c.verifierCode(code));
						

et le résultat affiché est le suivant:
2298 //premier entier saisie
2298// l'entier dans la requête
+++++++++false // résultat d'égalité entre 2 entier
false

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
Lorsque tu fais Object cd=res.getObject("code"); rien ne garantit apriori que cd soit un Integer.
Il serait intéressant d'afficher le type de cd : System.out.println(cd.getClass().getName());

Ensuite tu fais if((cd)==(code)) autant dire que là il n'y a aucune chance que cela fonctionne, car l'opérateur == compare les objets, pas leurs valeurs !
0