[Résolu] Des connaisseurs en Java?

7
29 novembre 2016
Édit: Merci beaucoup à ian & pierre28 c'était un truc tout con xD

Salut, comme je vois qu'il y a vraiment beaucoup de développeurs ici j'ai décidé de poster un topic pour une erreur que je pense conne mais j'y arrive pas lol (je suis débutant après), comme je suis en BTS SIO j'ai des PPE à rendre (n'allez pas poster "Ah ça me rappel ma jeunesse xD), et du coup je fais une application en client lourd, du coup j'ai quasi fini le problème c'est que j'avais pas de contrôle donc un des points les plus importants.

Voici une image de l'appli:

cc48447b060b418fa3da8e6472436869.png
L'interface graphique je l'ai fais avec WindowBuilder pour gagner du temps et mon problème c'est que par exemple je fais un:

Spoiler :

if(recup_km == "test"){
sysout("c'est ok");
}

Où sinon plus simple voilà la capture d'écran

9dd9bde430c6484c8af6bbeb25d87fac.png



Voici les informations nécessaire pour comprendre mon code:


Spoiler :

7e6a43d4110c4b8b8755368866a1939a.png




Spoiler :

d00b0ec4aceb44fabd334c87cde8f843.png




Spoiler :

13b5d3b57a8d48b89af62787657607ed.png




Spoiler :

112d597afad44780b7f97c0b15efbf55.png



Par contre si après la déclaration de recup_km je lui mets recup_km = "Kilométrage" sa fonctionne donc bon..
Merci de votre aide!

7 commentaires

Java... ca me rappele ma mauvaise jeunesse !

Posteur

X.LINK

Java... ca me rappele ma mauvaise jeunesse !


arrêtez avec vos "alala le BTS SIO/IG.. que des souvenirs"

Hum hum ... là quand même ce sont les bases que tu dois reprendre ...

En Java tout est objet (bon sauf les types primitif), donc ton test d'égalité tu le fais sur des références.

En gros tu vérifies que l'adresse mémoire de ton objet (String) recup_km est identique à l'adresse mémoire de l'autre objet, car oui quand tu écris "Kilométrage" cela créé un objet de type String.

Bref, petite révision en vue, et pour corriger cette partie de ton code tu dois remplacer par ça:

if(recup_km.equals("Kilométrage")) {

J'ai pas compris où est le problème, mais pour tester l'égalité de 2 chaines de caractères tu devrais utiliser String.equals() au lieu de ==
Avec == tu demande si les objects sont identiques, et ils le sont pas, ce sont 2 objets distincts stockés à 2 adresses mémoire différentes (mais de même contenu).

edit: ha ben trop lent

Posteur

ian

Hum hum ... là quand même ce sont les bases que tu dois reprendre ...En J … Hum hum ... là quand même ce sont les bases que tu dois reprendre ...En Java tout est objet (bon sauf les types primitif), donc ton test d'égalité tu le fais sur des références.En gros tu vérifies que l'adresse mémoire de ton objet recup_km est identique à l'adresse mémoire de l'autre objet, car oui quand tu écris "Kilométrage" cela créé un objet de type String.Bref, petite révision en vue, et pour corriger cette partie de ton code tu dois remplacer par ça:if(recup_km.equals("Kilométrage")) {



, merci beaucoup le pire c'est que j'avais eu ce problème pendant longtemps pour créer un espace membre j'avais fais pareil pour une connexion par exemple:
if(resultat.getString("mot_de_passe").equals(passwordField.getText()))

Merci beaucoup pour la réponse rapide, et désolé

Et pour parfaire le truc, j'ai oublié de dire que ton "Kilométrage" semble être une constante, et dans ce cas on préfère la définir comme telle:

public static final String KILOMETRAGE = "Kilométrage";

Ensuite tu utilises cette constante partout où nécessaire. Cela te sauvera la vie le jour ou tu voudras en changer la valeur, et que malencontreusement tu oublieras de modifier à un endroit ...

Posteur

ian

Et pour parfaire le truc, j'ai oublié de dire que ton "Kilométrage" s … Et pour parfaire le truc, j'ai oublié de dire que ton "Kilométrage" semble être une constante, et dans ce cas on préfère la définir comme telle:public static final String KILOMETRAGE = "Kilométrage";Ensuite tu utilises cette constante partout où nécessaire. Cela te sauvera la vie le jour ou tu voudras en changer la valeur, et que malencontreusement tu oublieras de modifier à un endroit ...



Merci beaucoup c'est très sympa de ta part!
Je vais pas te cacher que j'avais pas compris au début mais en la définissant j'ai très vite compris et je trouve ça utile merci beaucoup!
PS: J'ai fais pareil pour contrôler prix vente, description, prix achat, coûts de réparations avec ça merci
Laisser un commentaire
Avatar
@
    Texte
    Top sujets
    1. Blabla, venez parler de tout et de rien!72877659
    2. Vos anniversaires !2402985
    3. Aidez des animaux dans le besoin1303750
    4. Le topic des jeux de société1821833

    Voir plus de discussions