Re-bonjour, j'ai dans mon application, un objet A composé d'objet B, qui lui meme est composé d'objet C ( et compose donc A), composé de D qui lui est composé de E, pour cela j'utilise les LinkedList.
1 2 3 4
| public class Compose<T> {
protected T c; // C l'objet composé
(..)
} |
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class ComposéDe<T extends Compose> {
protected LinkedList<T> cde;
ComposéDe()
{
cde=new LinkedList<T>();
}
(...)
public void effacer()
{
// Cf. plus bas
}
} |
1 2 3 4 5 6 7 8 9 10 11
| public class ComposéDeCompose<T1 extends Compose,T2> extends Compose<T2> implements IntComposéDe<T1> {
protected ComposéDe C;
ComposéDeCompose()
{
super();
C=new ComposéDe();
}
(...)
} |
A hérite de ComposéDe<B>, E de Compose<D>, le reste du type :
1 2 3 4
| public class B extends ComposéDeCompose<C,A>
{
..
} |
Je cherche a faire une suppression en cascade, supprimer A reviendrais a supprimer tous ses Objet B, pour lesquels on supprimerais tous leurs Objet C etc
La méthode que je cherche a écrire est la suivante :
Je teste si ma liste est composé d'objet composé d'autres objets, si oui, suppression en cascade, sinon, je supprime les éléments de la liste.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public void effacer()
{
ListIterator iter=this.cde.listIterator();
Class cls=this.cde.getClass().getComponentType();
if(cls instanceof ComposéDeCompose)
{
// Suppression
}
else
{
while(iter.hasNext())
{
iter.next();
iter.remove();
}
}
} |
C'est ce qui est en gras qui pose problème, lorsque je fais un essai avec un document par exemple, cette ligne
return this.cde.getClass().getComponentType();
me renvoie null au lieu de page, je comprend pas.
Cette ligne aussi pose problème
if(cls instanceof ComposéDeCompose)
Cela me dit
inconvertible types
required: document.ComposéDeCompose
found: java.lang.Class
Really need help, ne serait-ce qu'une indication
Merci d'avance
Partager