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

  FORUM HardWare.fr
  Programmation
  Java

  Heritage et Collections [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Heritage et Collections [RESOLU]

n°2160411
veobryn
Posté le 16-10-2012 à 21:44:35  profilanswer
 

Bonjour,
  j'ai un petit problème et j'aurais besoin des conseils avisés de la communauté  hardware.fr
 
je vous expose la situation:
 
j'ai Trois Classes:
Personne
Patient
Professionnel
 
Comme vous vous en doutez,
Patient et Professionnel héritent de la Classe Personne.
La classe Personne est Abstraite
 
j'ai une collection de Personne (ArrayList<Personne> ) contenant des Objets Patient et des Objets Professionnel.
 
le Probleme:
Après une déssérialisation, je recupere un Collection de personne,
et j'aimerais récupérer dans une ArrayList<Patient> tout les patients Contenu dans la ArrayList<Personne>
 
j'espère m'être exprimé a peut-près correctement. merci d'avance pour l'aide que vous pourrez m'apporter.
 
 
ps: voici l'extrait de code JAVA qui me pose problème:

Code :
  1. public Collection<PatientDTO> listerPatients() throws CabinetTechniqueException{
  2.  Collection<PatientDTO> listePatientDTO = new ArrayList<PatientDTO>();
  3.  Collection<Personne> listePersonne = new ArrayList<Personne>();
  4.  Collection<Patient> listePatient = new ArrayList<Patient>();
  5.  listePersonne = (ArrayList<Personne> )PersonneDAOFichier.findAllPersonne();
  6.  for (Personne unePersonne : listePersonne){
  7.   //ici le code qui permet de mettre les patients de listePersonne dans ListePatient
  8.   //merci de votre aide
  9.  }
  10.  //ici le code que j'ecrirais pour remplir la ListePatientDTO
  11.  return listePatientDTO;
  12. }


 
 
 
Edit : pour ceux que sa intéresserais( sait-on jamais chez les debutants comme moi), je poste la solution que j'ai trouvé :

Code :
  1. public Collection<PatientDTO> listerPatients() throws CabinetTechniqueException, HelperException{
  2.  Collection<PatientDTO> listePatientDTO = new ArrayList<PatientDTO>();
  3.  Collection<Personne> listePersonne = new ArrayList<Personne>();
  4.  Patient unPatient = new Patient();
  5.  listePersonne = (ArrayList<Personne> )PersonneDAOFichier.findAllPersonne();
  6.  for (Personne unePersonne : listePersonne){
  7.   unPatient = (Patient)unePersonne;
  8.   listePatientDTO.add(HelperPatient.toPatientDTO(unPatient));
  9.  }
  10.    return listePatientDTO;
  11. }


Message édité par veobryn le 16-10-2012 à 22:16:15
mood
Publicité
Posté le 16-10-2012 à 21:44:35  profilanswer
 

n°2160421
Farian
Posté le 16-10-2012 à 22:36:05  profilanswer
 

Bonjour !
 
Votre code paraît dangereux dans la mesure où votre cast de unePersonne en Patient peut échouer et renvoyer une exception ...
 
Il serait plus avisé de tester d'abord, puis ensuite ajouter, ce qui pourrait donner (aux erreurs de syntaxe près, je n'ai plus fait de Java depuis une éternité ... :) )
 

Code :
  1. listePersonne = (ArrayList<Personne> )PersonneDAOFichier.findAllPersonne();
  2. for (Personne unePersonne : listePersonne){
  3.   if (unePersonne instanceof Patient){
  4.    unPatient = (Patient) unePersonne;
  5.    listePatientDTO.add(HelperPatient.toPatientDTO(unPatient));
  6.   }
  7. }


 
 
Par ailleurs, pourquoi créer une instance de Patient dans la ligne "Patient unPatient = new Patient();" ?
 
Bonne continuation !
 


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

  Heritage et Collections [RESOLU]

 

Sujets relatifs
[VB.NET] Utilisation des collections [Résolu][RESOLU][c++] probleme de syntaxe dans un héritage
question d'héritage et polymorphisme[POO] Héritage vers Base de données relationelle
[Résolu]Linq résultat sur 2 collections[JavaScript]IE9 : blocage lors de l'héritage par proto d'un objet DOM
Héritage + sérialisationOpenCL et C++ (héritage)
problème d'héritageHéritage dans les collections
Plus de sujets relatifs à : Heritage et Collections [RESOLU]


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