Bonjour, j'ai un soucis de polymorphisme. Ci-dessous un exemple simplifié de ma situation.

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public interface I {
    Integer getValue();
}

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public class A implements I {
   public Integer getValue() {/*[...]*/}
   public static void f(List<I> l) {
      // [...]
      for (ListIterator<I> it = l.listIterator(); it.hasNext();)
            if (!it.next().getValue() > 1)
                it.remove();
   }
}

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public class B implements I {
   public Integer getValue() {/*[...]*/}
}

Et dans mon main :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
List<B> l;
A.f(l);
method f in A cannot be applied to given types
required: java.util.List<I>
found: java.util.List<A>


C'est fâcheux ! Quelqu'un aurait-il une solution ? Merci de votre aide.