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 :

question sur le cast


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 32
    Points
    32
    Par défaut question sur le cast
    bonsoir à tous le monde dans ce code
    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
    16
    17
    18
    19
     test a= new test(1,"a");
        test b= new test(2,"b");
     
            LinkedList<test> dic = new LinkedList<test>() ;
            dic.add(a);
            dic.add(b);
            ListIterator<test> iter = dic.listIterator ();
            while(iter.hasNext())
    {
    System.out.println(((test)iter.next()).y);
    }
     
            Iterator iterator=dic.iterator();
    int i=0;
    while(iterator.hasNext())
    {
    i++ ;
    if(((test)iterator.next()).y.equals("b")) System.out.print("yes");
    }
    j'ai pas compris pourquoi on fait (test) j'ai lu que c'est le cast mais j'ai pas compris c'est quoi le cast

    merci

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par yacin87 Voir le message
    j'ai pas compris pourquoi on fait (test)
    Là tu n'as pas besoin de le faire. Ne le fais pas.

    Citation Envoyé par yacin87 Voir le message
    j'ai lu que c'est le cast mais j'ai pas compris c'est quoi le cast
    C'est en effet un cast.

    Le cast est utile quand on a une variable de type A mais qu'on sait que cette variable est en fait de type B, un sous-type de A.

    C'est une situation que l'on doit éviter autant que possible, mais on a pas toujours le choix.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    String getStringValue(Object o) {
      if(o instanceof Element) {
        Element elt = (Element)o;
        return elt.getChildText();
      } else if(o instanceof Attribute) {
        Attribute att = (Attribute)o;
        return att.getValue();
      } else if(o instanceof Text) {
        Text text = (Text)o;
        return text.getValue();
      } else {
        throw new IllegalArgumentException("Neither Element nor Attribute nor Text : " + o);
      }
    }
    Ici nous avons un objet o de type Object. Nous savons que normalement C'est soit un Element, soit un Attribute, soit un Text (qui sont, comme tout le reste d'ailleurs, des sous-types de Object.) Mais nous ne savons pas lequel des trois.

    Nous vérifions donc avec instanceof, et une fois qu'on a trouvé le type de l'objet, nous faisons un cast pour pouvoir l'utiliser comme tel. En effet, la classe Object n'a pas de méthode getChildText() ni getValue(), on ne peut donc pas appeler ces méthodes sur une variable Object.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Là il y a besoin de le faire dans le 2ème cas, car l'iterator n'a pas été déclaré comme étant un itérateur sur une collection de "test" (penser à mettre une majuscule aux classes). Sinon, pas mieux

Discussions similaires

  1. petite question sur les gpointers et les cast
    Par echantillon dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 30/05/2011, 13h23
  2. petite question sur l'héritage et les cast
    Par baedal dans le forum Langage
    Réponses: 3
    Dernier message: 29/02/2008, 00h48
  3. Question sur les casts
    Par nicolas66 dans le forum C++
    Réponses: 3
    Dernier message: 16/03/2006, 19h03
  4. [Débutant] Deux questions sur la conversion (cast)
    Par kloss dans le forum Langage
    Réponses: 7
    Dernier message: 18/02/2006, 19h46

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