Originariamente inviato da redcloud
[CODE]ma vorrei rendere il cast automatico chiedendo a i qual è il suo tipo istanziato, quindi qualcosa del genere
codice:
m.pippo((i.getTipoIstanziato()) i);
codice:
if (i instanceof A) {
    m.pippo((A) i);
} else if (i instanceof B) {
    m.pippo((B) i);
}
Che pur funzionando tecnicamente ..... faticherei un pochino a capire il senso, il motivo e lo scopo finale per cui devi "romperti" la testa con robe del genere....

Quando si fanno cose del tipo:

InterfacciaXYZ i = new UnaClasseCheImplementaInterfacciaXYZ();

lo scopo principale è quello di sfruttare il "polimorfismo" ovvero: non sai e non ti interessa quale è il tipo reale dell'oggetto ma sai che implementa InterfacciaXYZ e quindi invochi i metodi dell'oggetto in modo "polimorfico" attraverso la interfaccia.

Quindi o in Main c'è un metodo pippo(I i) { ... } e qui dentro vengono invocati i metodi di I (quindi in modo polimorfico) oppure tutto quanto ha poco senso ... solo per "giocherellare"....