I ont deux classes (A et B) avec des méthodes identiques (foo):Java: différentes interfaces génériques
public class A {
public String foo() {
return "A said foo";
}
}
public class B {
public String foo() {
return "B said foo";
}
}
Je veux rendre la classe générique qui peut appeler cette méthode. Mais j'ai deux idées sur la façon de le faire dans l'exécution et ont pas des idées sur la compilation:
chèque type et coulé à A ou B.
méthode Get.
Mon exemple de générique qui appelle getMethod:
public class Template<T> {
private T mT;
public Template(T t) {
mT = t;
}
public String bar() {
String result = "no result";
try {
Method m = mT.getClass().getMethod("foo", null);
result = (String)m.invoke(mT);
} catch (Exception e) {
result = e.toString();
e.printStackTrace();
}
return result;
}
}
Y at-il une autre façon comment le faire? Je cherche quelque chose comme ceci:
public class Template<T extends A | B> {
...
}
Notez que je ne suis pas un créateur de classes « A » et « B ».
En effet. Sans l'interface (ou la superclasse), la seule façon de le faire serait par réflexion, générique ou non. –