Bonjour,
Dans le cadre de petits projets personnels, j'ai l'architecture suivante : un premier projet, sur lequel vont s'appuyer d'autres projets par la suite. J'ai donc une sorte de "base" dont vont étendre par la suite les autres projets.
Pour le moment, j'ai par exemple 3 projets (au sens Eclipse) : la base, projet1 et projet2. Ces deux derniers incluent donc la base en tant que jar, et beaucoup de leurs classes héritent de classes génériques de la base.
Maintenant que le cadre est donné, voici le genre de soucis auxquels je suis confronté. Dans la base, j'ai une interface et une classe abstraite comme suite :
Code projet_Base : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public interface MonInterface { public void maMethode(MaClasseTest _maClasse); // Test Generics : public <T extends MaClasseTest> void maMethode(T _maClasse); } public abstract class MaClasseAbstraite implements MonInterface { // Definition de methodes generiques qui serviront a tous les projets // se basant sur la base } public class MaClasseTest { // Le contenu est sans importance ici }
Puis, dans mon projet1 par exemple, j'ai ceci :
Code projet_1 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class MaClasseTestProjet1 extends MaClasseTest { // Le contenu est sans importance ici } public class MaClasse extends MaClasseAbstraite { @Override public void maMethode(MaClasseTest _maClasse) { // Avec Generics : public void maMethode(MaClasseTestProjet1 _maClasse) { // Problème : ne compile pas... } }
Ce que je voudrais, c'est que dans mon projet1, je travaille uniquement avec MaClasseTestProjet1, et plus du tout avec MaClasseTest. Pour ce faire, je voulais utiliser les Generics dans mon projet de base, mais je dois mal m'y prendre (cf. commentaires ci-dessus). A l'heure actuelle, le code (celui non-commenté ici) fonctionne, mais m'oblige parfois à faire des cast dans tous les sens, ce que je ne trouve pas très heureux.
J'espère avoir été assez clair dans mes explications.
Mako.
Partager