Pb de conception avec collection / objet et généricité
Bonjour,
Je dispose d'une hiérarchie de classe, qui sont souvent dans des collections java. Afin de faciliter leur usage, je souhaitrais ajouter des méthodes sur les collections de mes objets, j'ai donc penser a hériter une ArrayList et ajouter les méthodes qui m'intéressent.
J'ai recréer un exemple :
Voici les classes :
Citation:
public class Classe1
{
public void methode1() {}
}
public class Classe2 extends Classe1
{
public void methode2() {}
}
et les collections qui les gerent :
Citation:
public class List1<E> extends ArrayList<Classe1>
{
public void afficher1()
{
for ( Classe1 c : this )
c.methode1();
}
}
public class List2 extends List1<Classe2>
{
public void afficher2()
{
for ( Classe2 c : this ) //Erreur this n'est pas du type Classe2
c.methode2();
}
}
A priori je ne peux étendre la List1 pour changer son type puisque une ArrayList<Classe2> ne peut pas hériter d'une ArrayList<Classe1>. La solution serait donc de créer la classe List2 héritant de ArrayList<Classe2> mais dans ce cas je suis obliger de copier/coller les méthodes de List1 dans List2 afin de profiter de ses méthodes ! De plus je ne pourrais pas passer d'une liste a une autre list1 = list2 par ex...
Je ne vois pas trop de solutions, si vous avez déjà été confronté a ce genre de problème ?
Merci