codice:
public class Main {
public void pippo(A a) {
System.out.println("PIPPO A");
}
public void pippo(B b) {
System.out.println("PIPPO B");
}
class A {}
class B {}
interface I {}
class C extends A implements I {}
class D extends B implements I {}
public static void main(String[] args) {
Main m = new Main();
I i = m.new C();
m.pippo(i);
i = m.new D();
m.pippo(i);
}
}
La soluzione ovvia sarebbe
codice:
m.pippo((A) i);
o
m.pippo((B) i);
ma vorrei rendere il cast automatico chiedendo a i qual è il suo tipo istanziato, quindi qualcosa del genere
codice:
m.pippo((i.getTipoIstanziato()) i);
Qualche idea?