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 :

TreeMap + type de données


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Fabouney
    Invité(e)
    Par défaut TreeMap + type de données
    Bonjour à tous,

    mon problème est relativement simple.

    j'ai 2 classes: "Salarie" et "Representant" (Representant hérite de Salarie)

    jai un TreeMap qui en fait me permet de stocker des objets de type Salarie et Representant.
    jusque là aucun problèmes.

    le soucis c'est lors de la récupération des données du treemap.
    j'effectue une boucle qui parcours tout le Map, en récupérant la valeur de la clé (i), (treemap.get(new Integer(i+1) comme ceci)

    j'ai déclaré une variable s de type Salarie pour récupérer la valeur de la clé courante, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Salarie s
    s = (Salarie)treemap.get(new Integer(i+1);
    si je cast pas, il me met une erreur, et puis si l'objet retourné et de type Representant cela pose un problème, je n'arrive pas a acceder au méthode, ca me dit "méthode introuvable dans classe Salarie" en meme temp c'est normal.

    P.S : pourtant si j'affiche la classe de l'objet, il me met bien que c'est la Representant en procédant ainsi : s.getClass().

    ma question, est donc, comment pourrais-je m'y prendre, pour récuprer les valeurs du treemap, et en conservant le type d'origine, sans caster en gros, car la c'est ca qui pose probleme.
    dois-je déclaré une variable de type Object, et faire avec, merci de proposer des solutions ...

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Je pense que l'opérateur instanceof devrais répondre à ton besoin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(int i = 0; i < treemap.size(); i ++) {
          Salarie s = (Salarie) treemap.get(new Integer(i + 1));
          if(s instanceof Representant) {
                Representant r = (Representant) s;
          }
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre chevronné
    Avatar de Eric Berger
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2002
    Messages : 346
    Par défaut
    Tu peux aussi laisser les représentants dans ta variable de type Salarie, et la caster au moment où tu souhaites l'utiliser, mais tu devras à ce moment soit faire le test proposé par y@m's, soit savoir à quel type tu es confronté par un autre moyen (dans ta question, tu avais l'air de savoir que tu avais à faire à un représentant sans savoir comment l'exploiter). La seule différence est que tu peux balader une seule variable, indépendament du type contenu jusqu'au moment où tu souhaites te servir d'une méthode du type spécialisé.

  4. #4
    Fabouney
    Invité(e)
    Par défaut
    Merci pour vos réponse, en effet instanceof, va bien me service j'vais tester cela.

    encore merci je vous redit koi

Discussions similaires

  1. interbase : types de donnés : AutoIncrement et Date ???
    Par delphien dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/04/2004, 17h29
  2. Type pour données de type email avec @
    Par jeff37 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/01/2004, 14h50
  3. Types de données interbase
    Par Clotilde dans le forum InterBase
    Réponses: 2
    Dernier message: 18/11/2003, 14h10
  4. Réponses: 2
    Dernier message: 22/09/2003, 11h23
  5. Convertir un type de donnée sous SQL Server
    Par Fleep dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/08/2003, 15h15

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