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 :

Savoir si un objet appartient a tel ou tel classe.


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut Savoir si un objet appartient a tel ou tel classe.
    Bonjour

    Voila mon problème

    j'ai une classe mere qui definit 3 sous classes.

    J'ai un vecteur comprenant des objets de la classe mere indifferament.
    Et je voudrais recuperer dans ce vecteur que les objets d'une seule sous classe et je vois pas du tout comment savoir si tel ou tel objet est de tel ou tel classe?

  2. #2
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    l'opérateur instanceof

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Object o = new Integer();
    if (o instanceof Integer){
      //...
    }

  3. #3
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    bonjour

    vous pouvez regarder du côté de l'opérateur instanceof

    bon courage

  4. #4
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Dans ta classe mere tu pourrais definir une méthode abstraite.
    Cette méthode abstraite serait implémentée dans chaque sous classe et renverrait son type propre Type. Chaque type pourrais être defini dans une classe d'enumération (ce qui induirai un typage fort)

    Si tu n'as pas acces au code de tes classes tu peux essayé le instance of
    ou encore la methode getClass().

    J'espere que cela t'aidera! si tu as des questions! n'hesites pas!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  5. #5
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Tu peux aussi faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Object e = tonVector.get(0);
     
    if (e.getClass()==TaClasse1.class){
            //code
    }else if (e.getClass()==TaClasse2.class)
            //code
    }
    Et avant que vous ne vous vous jetiez sur moi pour l'utilisation de == de la comparaison, sachez que Java fait en sorte qu'il n'y ait qu'une seule instance de chaque objet Class, on peut donc utiliser == au lieu de equals.

    [Edit] Grilled!

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  6. #6
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par Descent
    Et avant que vous ne vous vous jetiez sur moi pour l'utilisation de == de la comparaison, sachez que Java fait en sorte qu'il n'y ait qu'une seule instance de chaque objet Class, on peut donc utiliser == au lieu de equals.
    d'accord, mais instanceof est quand même beaucoup mieux....
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Merci a tous de ces reponses rapides.

    Je ne connaissais effectivement pas instanceof, je vais tester ca tout de suite et vous dirais si ca marche.

    Mais normalement y devrait pas avoir de probleme je vais matter la doc ;-)

    PS: Il n'y a plus le bouton résolu?
    EDIT :; y a un petit probleme pour le comptage des reponses sur le forum. Dans le sujet 8 réponses mais sur le forum affiche 7

  8. #8
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par zulot
    PS: Il n'y a plus le bouton résolu?
    Il est sous "outils de la discussion" maintenant

    Citation Envoyé par zulot
    EDIT :; y a un petit probleme pour le comptage des reponses sur le forum. Dans le sujet 8 réponses mais sur le forum affiche 7
    Non, le premier message n'est pas une réponse, c'est une question
    on a donc bien 7 réponses !
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2007, 16h13
  2. Réponses: 21
    Dernier message: 12/04/2007, 13h45
  3. Réponses: 8
    Dernier message: 27/12/2006, 19h04
  4. Savoir si un objet implement une interface
    Par toure32 dans le forum Delphi
    Réponses: 3
    Dernier message: 17/11/2006, 20h54
  5. Réponses: 14
    Dernier message: 23/05/2006, 19h44

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