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

Langage Java Discussion :

Classes soeurs avec instanceof


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut Classes soeurs avec instanceof
    Bonjour à tous,

    j'ai un problème surement très simple mais je bloque complet dessus !

    J'ai le code suivant :

    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
     
    class A;
     
    class B extends A;
     
    class C extends A;
     
    ...
    A toto=getById(id); ....
     
    if(toto instanceof B)
        .....
    else
        if(toto instanceof C)
         ....
    Je travaille avec des ejb 3.0 donc ces classes sont des entity beans (j'ai retiré les annotations pour simplifier le problème mais aussi parce que je pense que ça ne change rien à mon problème!). Donc je récupère un objet de type A dont je veux savoir le type réel. J'utilise donc instanceof et là, problème, puisque ma valeur est censée être de type C (au débuggueur sous eclipse, elle est bien de type C) et le instanceof B renvoie vrai !!

    Peut être que le instanceof va chercher le type parent, je ne sais pas.

    Cordialement

    Antoine

  2. #2
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Si toto est de type concret C qui hérite de A, alors toto instance B doit renvoyer false.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut
    Je suis bien d'accord. En fait, j'utilise la méthode find de l'entity manager (ejb 3.0) et lorsque je regarde dans le debugger d'eclipse je vois bien que toto est de type C mais après je rentre quand même dans le if(toto instanceof B) ... C'est vraiment bizarre ...

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Dans le debugger lorsque tu évalues l'expression toto instanceof B, ca te renvoie true ? Si c'est non, c'est que tu as un pb de divergence du code source / code compilé.

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut
    C'était bien ça l'erreur : code utilisé différent du code compilé. Désolé, c'est une sombre histoire qui combine à la fois le debugger d'Eclipse avec une façade d'accès à la base de données dans un .jar déployé deux fois sous JBoss d'où gros conflits lors du débuggage !! Merci en tout cas pour vos réponses !

    Cordialement.

    Antoine

  6. #6
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    C'est surement ta procédure de test qui n'est pas bonne, car le résultat attendu est correcte.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appeler une classe CSS avec Javascript
    Par p0Kep0K dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 13/02/2006, 14h50
  2. Problème sur classe Transformer avec les <!--
    Par tykool dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2006, 10h20
  3. Réponses: 2
    Dernier message: 06/12/2005, 09h41
  4. Réponses: 6
    Dernier message: 27/07/2005, 09h06
  5. Réponses: 22
    Dernier message: 05/07/2005, 00h04

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