IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Java Discussion :

Modifier la méthode equals() générée par eclipse


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut Modifier la méthode equals() générée par eclipse
    Bonjour

    Quand on génère equals() avec eclipse, on se retrouve avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    @Override
    public boolean equals(Object obj) {
    	if (this == obj) {
    		return true;
    	}
    	if (obj == null) {
    		return false;
    	}
    	if (getClass() != obj.getClass()) {
    		return false;
    	}
    	MyObj other = (MyObj) obj;
    	if (id == null) {
    		if (other.id != null) {
    			return false;
    		}
    	}
    	else if (!id.equals(other.id)) {
    		return false;
    	}
    	return true;
    }
    Le probleme, c'est qu'il considère par défaut que si les deux clés sont nulles, alors les deux objets sont égaux. Pour moi, au contraire, null est systématiquement différent.

    J'aimerais qu'il me génère plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    @Override
    public boolean equals(Object obj) {
    	if (this == obj) {
    		return true;
    	}
    	if (obj == null) {
    		return false;
    	}
    	if (getClass() != obj.getClass()) {
    		return false;
    	}
    	MyObj other = (MyObj) obj;
    	if (id == null || other.id == null) {
    		return false;
    	}
    	else {
    		return id.equals(other.id);
    	}
    }
    Est ce que vous avez une idée de où je dois taper pour que ça modifier la génération du equals ?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut
    Salut,

    Normalement ça devrait se trouver là :
    Window>Preference>Java>Code Style>Code templates

    Il y a bien les templates de génération getter/setter et autres mais je ne vois pas celui de equals ...

    Je ne sais pas si c'est possible juste par configuration ....

    Si tu trouve je suis intéressé

  3. #3
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    J'ajouterai une critique grave:
    - dans 99% des cas utiliser getClass() est incorrect
    (ça ne peut être le cas que si le code est effectivement lié au contexte du ClassLoader ET si les sous-classes ne sont pas compatibles pour l'égalité avec
    d'autres classes -effet de bords graves garantis dans de très nombreux cas-)
    j'utilise rarement eclipse mais j'ai du changer le comportement pour qu'il utilise instanceof)

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/03/2013, 08h37
  2. Méthodes non trouvées par Eclipse
    Par zenux dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 10/08/2011, 22h43
  3. Le méthode générée par Talend dépasse 65Kb
    Par kevin0809 dans le forum Installation, migration et administration
    Réponses: 3
    Dernier message: 30/04/2009, 11h10
  4. Connaitre la ligne de commande Java générée par Eclipse
    Par webspeak dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 16/08/2007, 12h05
  5. Supprimer une méthode générée par Matisse
    Par Babaôrom dans le forum NetBeans
    Réponses: 2
    Dernier message: 21/11/2006, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo