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

API standards et tierces Java Discussion :

caster une classe mère en classe fille


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Points : 55
    Points
    55
    Par défaut caster une classe mère en classe fille
    Bonjour,

    J'ai une classe mère A et une classe fille B. Je vourdrais spécialiser une instance de A en B.

    Supposons que monInstanceA soit initialisé correctement,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    je fais B monInstanceB = ( B) Class.forName( nomClasseB ).cast( monInstanceA);
    J'ai l'exception suivante : java.lang.ClassCastException

    Je sais que le nom de ma classe est correcte car le code suivant s'execute sans exceptions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    try {
                try {
                    B monInstanceB= (B) Class.forName(nomClasseB ).newInstance();
                } catch (InstantiationException ex) {
                   throw new CompteUpgradeException(nomClasseA , nomClasseB );
                } catch (IllegalAccessException ex) {
                    throw new CompteUpgradeException(nomClasseA , nomClasseB );
                }
            } catch (ClassNotFoundException ex) {
                throw new CompteUpgradeException(nomClasseA , nomClasseB );
     
            }
    Des idées ?
    Merci pour votre aide

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 45
    Points : 60
    Points
    60
    Par défaut
    Je ne pense pas qu'il soit possible de caster une classe mère en une classe fille.
    Par contre tu peux créer un constructeur dans ta classe fille qui prend en paramètre un objet du type de ta classe mère ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    B instanceAinB = new B(instanceA) // Qui retourne une ref vers un objet de type B

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Points : 55
    Points
    55
    Par défaut
    C'est la méthode que j'ai plus ou moins adopté. Dans ma hiérarchie de classes (en fait j'en ai plus que 2) j'ai fait une routine initFromMotherClass( classeMère ) qui vont s'appeler en chaine les unes les autres.

    Avec des constructeurs effectivement c'est plus propre.

    Merci pour ta réponse.

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

Discussions similaires

  1. Caster classe mère et classe fille
    Par zsoufianz dans le forum Général Java
    Réponses: 1
    Dernier message: 02/12/2014, 03h36
  2. Conversion d'une classe mère en classe fille
    Par Aleph69 dans le forum C++
    Réponses: 7
    Dernier message: 07/05/2014, 10h39
  3. Réponses: 2
    Dernier message: 14/10/2009, 09h31
  4. Réponses: 14
    Dernier message: 06/06/2009, 21h42
  5. Réponses: 6
    Dernier message: 22/11/2008, 15h46

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