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

Java Discussion :

Cast en Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 61
    Par défaut Cast en Java
    Bonjour à tous,

    j´ai un problème de cast avec les ArrayList.
    Ceci est vrai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Objet obj = null;
    Entity ent;
    ent = (Entity) obj;
    Mais comment faire la même chose avec un ArrayList. J´obtiens une erreur de cast avec le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ArrayList[Object] obj = new ArrayList[Object];
    obj.add("pat");
    ArrayList[User] us;
    us = (User) obj;
    Merci de votre aide.
    Sylvie

  2. #2
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Les ArrayList ne sont pas des tableaux, donc tu ne peux pas utiliser la syntaxe "[]" pour les manipuler. De plus, tu essayes de caster une ArrayList en User, ce qui est faux. Comment peut-tu dire que les deux sont identiques ?

    Tu peux caster un objet soit vers une classe / interface de plus haut niveau (fait automatiquement).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ArrayList<Object> ob = ... ;
    List<Object> list = ob;
    Soit vers un plus bas niveau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List<Object> ob = ... ;
    ArrayList<Object> list = (ArrayList<Object>) ob;
    Lorsque tu fais des cast, veille bien à ce que les objets soit de même type. Dire qu'une pomme est un fruit c'est possible, qu'un fruit peut être une pomme aussi, mais qu'une pomme est une brique, cela n'a aucun sens.

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Quand tu fais obj.add("pat");, "pat" est un String.

    Donc, comme un String n'est pas un User, tu ne peux pas faire us = (User) obj; (sans compter que us est déclaré comme ArrayList et qu'on type un ArrayList avec <> et non [] )

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 61
    Par défaut
    Merci à vous deux pour vos réponses.
    Oui c´est vrai au lieu de [], c´est <>. J´ai fait une grosse gaffe là.

    C´est vrai aussi avec les pommes et fruits.
    C´est juste que m´étant dit qu´un User est un Object (Classe mère) alors je pouvais transformer un object existant en un User. Désolée, j´ai manqué de logique ici.
    A+
    Sylvie

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

Discussions similaires

  1. probleme de cast en java.Node
    Par azer706 dans le forum Débuter
    Réponses: 8
    Dernier message: 27/08/2009, 14h19
  2. Réponses: 3
    Dernier message: 12/04/2009, 18h39
  3. Cast et java
    Par ToTo13 dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2007, 14h39
  4. Héritage et casting en java
    Par menzlitsh dans le forum Langage
    Réponses: 3
    Dernier message: 04/07/2007, 12h23
  5. Cast de java.util.DATE à java.sql.DATE
    Par mnemonic78 dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2007, 08h21

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