Bonjour,

Je me retrouve confronter à un problème que je n'arrive pas à résoudre.

Voici la structure de mon code :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class A {
 
}
 
public class B1 extends A {
 
}
 
public class B2 extends A {
 
}
 
public interface I<E extends A> {
  public void method(E param);
}
 
public abstract class K<E extends A> implements I<E> {
 
}
 
public class C1 extends K<B1> {
  public void method(B1 param) {
 
  }
}
 
public class C2 extends K<B2> {
  public void method(B2 param) {
 
  }
}
 
public class D {
  public void d() {
    // La method getK() retourne un objet de type K (c'est-à-dire de type C1 ou C2)
    // La method getA() retourne un objet de type A (c'est-à-dire de type A, B1 ou B2)
    getK().method(getA()); // comment faire pour que ça marche ? 
  }
}
Je souhaite appeler une méthode sur un objet dont je connais le type et avec un paramètre dont je ne connais pas non plus le type.

Quelle solution s'offre à moi ?

Merci d'avance