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 :

Caster sans instanceof


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 13
    Par défaut Caster sans instanceof
    Bonjour,

    Je me posais une question.
    Je sais que lorsqu'on veut caster, on doit vérifier avec instanceof si l'objet est bien une instance de la classe en question.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (a instanceof A)
     A res =(A)a;
    Mais dans le cas où on a une instance de classe A et que l'on veut caster cette instance en un classe B extends A et si dans cette classe B, il n'y a aucun champs supplémentaire, juste le constructeur de base et des méthodes, doit-on quand même vérifier le cast?
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class B extends A {
     // Pas de champs.
     // Pas de constructeur.
     // Que des méthodes.
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A a = new A();
    B b = (B)a; // Est-ce juste?
    J'espère que j'ai été claire !

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par Chamimi Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A a = new A();
    B b = (B)a; // Est-ce juste?
    Ça ne fonctionnera pas.

    Dans ton exemple, a est un objet de type A et seulement A. Il ne peut donc être casté en B. Ton IDE ne te dira rien durant la compilation mais se plaindra à l'exécution.

    Si l'on reprend tes classes A et B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A a = new A();
    B b = new B();
    a est donc un objet de type A et seulement A. b est un objet de type B. Et comme B est sous-classe de A, b est aussi de type A.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 13
    Par défaut
    Ah d'accord merci !

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

Discussions similaires

  1. Caster String en byte sans qu'aucun caractère ne change
    Par a.collery dans le forum Langage
    Réponses: 20
    Dernier message: 06/05/2015, 10h53
  2. Caster une String en byte sans getByte()
    Par goboben dans le forum Langage
    Réponses: 7
    Dernier message: 15/10/2008, 14h32
  3. instanceof sans connaitre la classe
    Par willoi dans le forum Langage
    Réponses: 7
    Dernier message: 13/04/2007, 14h05
  4. Caster sans warning
    Par Gwindor dans le forum C++
    Réponses: 6
    Dernier message: 03/04/2007, 13h24
  5. [Kylix] Fiches sans bordure
    Par alex dans le forum EDI
    Réponses: 4
    Dernier message: 28/04/2002, 21h19

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