Je travaille sur un projet web avec struts avec EJB3.
Mais le pb qui m'amène ici est plus général au langage java.
J'ai 2 EJB qui sont :
- DrEntity
- DictEntity.
Ces 2 classes possèdent les mêmes noms de méthodes à la différence que DictEntity possèdent 2 méthodes supplémentaires.
J'ai volontairement séparés les 2 car elles représentent 2 tables différentes en BD
Lorsque je récupère un enregistrement du DrEntity ou DictEntity, je veux initialiser les champs de mon bean avec.
Mon problème est le suivant :
afin de maintenir plus facilement mon code source, je ne veux pas dupliquer la fonction d'init de mon bean en fonction que je charge les données provenant de DrEntity ou DictEntity.
Alors j'ai essayé ceci :
Alors, jusque là :
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 dr -> objet de type DrEntity déjà initialisé dict -> objet de type DictEntity déjà initialisé sType -> objet de type String déjà initialisé db -> objet qui represente mon bean déjà initialisé Object demande = null; if(sType.equals("dr") demande = dr; else demande = dict; db.setId(demande.getId()); db.setNom(demande.getNom());
ca marche, mais pour la suite, j'ai une erreur signalé par eclipse me disant que mon objet demande ne possède pas les méthodes getId() et getNom().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Object demande = null; if(sType.equals("dr") demande = dr; else demande = dict;
Le résultat ne m'étonne pas, alors j'ai pensé au classe générique, mais dans mon cas, je ne sais pas comment l'appliquer
Alors, si quelqu'un a une idée, je suis preneur, car j'ai horreur de dupliquer du code pour rien
Merci d'avance
Partager