Mam problem z rzutowaniem w dół w Javie. Powiedzmy, że mamy nastepujący kod:
package org.test;
public class Klasa1 {
public String nazwa(){ return "Klasa1"; }
}
package org.test;
public class Klasa2 {
public String nazwa(){ return "Klasa2"; }
}
package org.test;
public class Test {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
String nazwaKlasy = "Klasa1";
Object o = Class.forName("org.test." + nazwaKlasy).newInstance();
// co dalej?
}
}
W klasie Test chciałbym wypisać nazwe dowolnej klasy zmieniając tylko pole nazwaKlasy. Wiem, że moge dokonać rzutowania:
Klasa1 k = (Klasa1) o;
System.out.println(k.nazwa());
ale to zadziała tylko dla Klasy1