Bonjour,
J'ai 2 problèmes avec mes génériques:
1) J'ai trois interfaces: itMessage, itOutMessage et itTriggerMessage.
Les 2 derniers étendent la 1ère.
J'ai deux classes epxortant respectivement des Set<itOutMessage> et Set<itTriggerMessage>:
objOut.ExportAll():
objTrigger.ExportAll() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public Set<itOutMessage> ExportAll() { ... }
Quand j'essaye de construire une liste avec l'ensembles des messages exportés j'ai des warnings:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public Set<itTriggerMessage> ExportAll() { ... }
Comme code j'écris:
Si j'essaye
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Set<itMessage> m=new TreeSet<itMessage>() m.addAll(objOut.ExportAll()); m.addAll(objTrigger.ExportAll());
C'est pas mieux. Qu'est-ce qui cloche ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <T extends itMessage>Set<T> m=new TreeSet<T>() m.addAll(objOut.ExportAll()); m.addAll(objTrigger.ExportAll());
2) Ma classe clOutMessage implémente itOutMessage.
J'essaye dans une collection de stocker une liste de classes implémentant itMessage.
Si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part List L<Class<itMessage>>=new ArrayList<Class<itMessage>>();
J'ai une erreur, pourtant clOutMessage implémente itOutMessage qui étend itMessage. Donc clOutMessage implémente itMessage et cela devrait être ok.
Code : Sélectionner tout - Visualiser dans une fenêtre à part L.add(clOutMessage.class)
Pouvez-vous m'aider à dépatouiller tout ça ?
Marci.
Partager