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

avec Java Discussion :

Déclarer et utiliser un objet polymorph


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Déclarer et utiliser un objet polymorph
    bonjour,

    J'ai toujours a gérer des objets polymorphes entre deux types les IMacroState et les IState. A ce sujet j'ai à déclarer une liste qui doit recevoir soit des IState soit des IMacroState:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static java.util.ArrayList<IMacroState> ListOldObjet;
    Mais je ne sait pas comment dire qu'une liste peut avoir deux types
    celui qui m'aidera sera

  2. #2
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Sans le code de ces deux interfaces, tout ce qu'on peut de dire, c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public java.util.List ListOldObjet;
    Pourquoi static d'ailleurs?


    (et sinon, j'ai trouvé la vraie réponse, mais j'aimerai bien que tu répondes à la mienne avant, histoire que tu puisses ensuite trouver les réponses toi même !)

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut J'ai donc mis cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static java.util.ArrayList<?> ListOldObjet;
    mais j'ai toujours une difficulté avec l'utilisation de cette déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListOldObjet.addAll( (Collection<?>)stateTo);
    dans le quel AddAll est refusé par le complîlateur

  4. #4
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    "Je suis à Lyon et je veux aller à Marseille, je vais comment?"
    "Ben, prend l'A7, c'est direct, tu pars du Sud de Lyon et tu arrives directement à Marseille"
    "Ok, je monte à Paris et je prends l'avion du coup, il n'y a qu'une seule escale à Frankfurt am Main"

    Toute ressemblance avec des conversations existantes serait purement fortuite

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut
    "Je suis à Lyon et je veux aller à Marseille, je vais comment?"
    "Ben, prend l'A7, c'est direct, tu pars du Sud de Lyon et tu arrives directement à Marseille"
    "Ok, je monte à Paris et je prends l'avion du coup, il n'y a qu'une seule escale à Frankfurt am Main"
    Oui c'est bien du polymorphisme, mais ça ne donne pas de syntaxe

  6. #6
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Citation Envoyé par JeanNoel53 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListOldObjet.addAll( (Collection<?>)stateTo);
    dans le quel AddAll est refusé par le complîlateur
    Oui c'est normal, quand tu utilises la notation <> pour définir un type, tu fais face à des limitations ! Dont celle de ne pas pouvoir ajouter des éléments dans ta liste (je pourrais faire une explication du pourquoi si tu veux)
    Pour ça que je t'ai dis de déclarer ta liste sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public java.util.List ListOldObjet;

    Maintenant, je le redis en deux points :
    - peux tu nous donner le code de tes deux interfaces IState et IMacroState
    - je connais la bonne réponse mais je veux déjà que tu postes le code de ces deux classes pour t'aider à trouver la bonne réponse toi même, en t'orientant pour comprendre comment la trouver

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ou à la limite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public List<Object> listOldObjet;
    Comme ça tu mets les objets que tu veux, mais tu as pas de warning.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut la syntaxe est bonne mais j'ai toujours une exeption quand j'ajoute à la liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.lang.ClassCastException: com.all4tec.matelo.datamodel.diagram.impl.MacroState cannot be cast to java.util.Collection
    	at com.all4tec.matelo.linguistique.wizards.BuildModel.AddReferenceInlist(BuildModel.java:551)
    	at com.all4tec.matelo.linguistique.wizards.BuildModel.ProcessReferenceInList(BuildModel.java:528)
    	at com.all4tec.matelo.linguistique.wizards.BuildModel.BuildCurrentSubChain(BuildModel.java:2300)
    quand j'execute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListOldObjet.addAll( (Collection) stateTo);

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/05/2008, 02h06
  2. [PDO] Utiliser l'Objet de PHP pour gérer sa base de données
    Par Viau dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/01/2006, 18h16
  3. Réponses: 6
    Dernier message: 03/01/2006, 13h36
  4. Utilisation d'objets pour imprimer
    Par alainvh dans le forum Composants VCL
    Réponses: 3
    Dernier message: 02/12/2004, 10h25
  5. utilisation d'objets ADO pour CMS sur POSTGRESQL7.3.2
    Par turbok dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/10/2003, 09h29

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