Bonjour,

J'ai essayé de générifier le code suivant de façon à limiter le transtypages éventuel des résultats mais visiblement j'ai des trous dans ma compréhension de l'utilisation des génériques. Le compilateur n'est pas content et je ne vois pas vraiment comment faire...

Toute aide serait très appréciée.

Merci

Code : 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
 
private Map<? extends IElement, Set<AbstractElementComponent<? extends IElement>>> elementComponents;
 
public <E extends IElement> Set<AbstractElementComponent<E>> getComponentsForElement(E element) {
    return elementComponents.get(element);  // compilateur n'aime pas!
}
 
public <E extends IElement> void addComponentForElement(E element, AbstractElementComponent<E> component) {
 
    Set<AbstractElementComponent<E>> components = getComponentsForElement(element);
 
    if (components == null) {
        components = new HashSet<AbstractElementComponent<E>>();
 
        elementComponents.put(element, components); // compilateur n'aime pas!
    }
    components.add(component);
}
PA