Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1133 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Typer un objet de type variable

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Typer un objet de type variable

n°2082779
Astro-Pepi​to
Posté le 16-06-2011 à 15:30:17  profilanswer
 

Bonjour à tous,
 
 
J'ai une structure de classes très simple du type ClassA <--- ClassB <--- ClassC. J'aimerais pouvoir utiliser un objet de cette arborescence mais dont je ne connais pas précisément le type : il peut s'agir d'un ClassB ou ClassC (ClassA est abstraite). La seule chose que je sais, c'est qu'il est dans cette arborescence et hérite de ClassA. Pour savoir quel type d'objet je dois créer, je regarde la première ligne d'un fichier de configuration.
Cet objet est ensuite stocké en tant qu'attribut dans une "classe chapeau" pour être réutilisé dans d'autres classes. Il faut donc que je sache quel type je dois donner à l'objet dans la classe chapeau ce qui, si vous avez bien suivi, dépend de la première ligne de mon fichier de configuration.
 
Le problème est que je ne sais pas comment typer cet objet.
Je ne peux pas utiliser de polymorphisme (ClassA monObjet = new ClassB() par ex) car j'ai besoin d'avoir accès aux attributs de la classe enfant.
 
Auriez-vous une solution à me proposer ?
 
 
Merci d'avance pour votre aide !

mood
Publicité
Posté le 16-06-2011 à 15:30:17  profilanswer
 

n°2082788
Jericho
Posté le 16-06-2011 à 16:53:57  profilanswer
 

Regarde du côté de la Reflection.  
 

Code :
  1. Class aClassB = ClassB.class;
  2. Class aClassC = ClassC.class;
  3. if(verif de la premiere ligne de ton fichier) {
  4.    ClassA aReflectedClassObject = aClassB.newInstance();
  5. } else {
  6.    ClassA aReflectedClassObject = aClassC.newInstance();
  7. }


 
Ensuite, dans ton code, quand tu devras avoir accès aux attributs et méthodes des classes enfants, tu pourras tester son type :  
 

Code :
  1. if(aReflectedClassObject instanceof ClassB) {
  2.    ((ClassB)aReflectedClassObject).ceQueTuVeuxDeLaClasseB();
  3. } else if(aReflectedClassObject instanceof ClassC) {
  4.    ((ClassC)aReflectedClassObject).ceQueTuVeuxDeLaClasseC();
  5. }


 
Enfin, quelque chose dans le style quoi.


Message édité par Jericho le 16-06-2011 à 16:59:18

---------------
All work and no play makes Jack a dull boy...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Typer un objet de type variable

 

Sujets relatifs
Récupération d'une variable contenue dans une frameCreation d'une variable a partir d'une autre
Liste d'objet DEBUTANT JAVADos - ignorer une variable d'environnement
Problème de variable PHPProblème incompatibilité type Excel VBA (Help, Stagiaire en détresse!)
[RESOLU] Modification d'un fichier en PHPDemander à l'utilisateur de definir le nom d'un objet
[RESOLU]Quel type de jointure pour ceci ?' ' does not name a type
Plus de sujets relatifs à : Typer un objet de type variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR