Warnings avec des generic
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():
Code:
1 2 3
| public Set<itOutMessage> ExportAll() {
...
} |
objTrigger.ExportAll() :
Code:
1 2 3
| public Set<itTriggerMessage> ExportAll() {
...
} |
Quand j'essaye de construire une liste avec l'ensembles des messages exportés j'ai des warnings:
Comme code j'écris:
Code:
1 2 3
| Set<itMessage> m=new TreeSet<itMessage>()
m.addAll(objOut.ExportAll());
m.addAll(objTrigger.ExportAll()); |
Si j'essaye
Code:
1 2 3
| <T extends itMessage>Set<T> m=new TreeSet<T>()
m.addAll(objOut.ExportAll());
m.addAll(objTrigger.ExportAll()); |
C'est pas mieux. Qu'est-ce qui cloche ?
2) Ma classe clOutMessage implémente itOutMessage.
J'essaye dans une collection de stocker une liste de classes implémentant itMessage.
Code:
List L<Class<itMessage>>=new ArrayList<Class<itMessage>>();
Si je fais
Code:
L.add(clOutMessage.class)
J'ai une erreur, pourtant clOutMessage implémente itOutMessage qui étend itMessage. Donc clOutMessage implémente itMessage et cela devrait être ok.
Pouvez-vous m'aider à dépatouiller tout ça ?
Marci.