Witam
Mam napisać program, który wypisze wszystkie nazwy klas bazowych związane z danym obiektem (całą hierarchie rekurencyjnie). Napisałem coś takiego:
class GetInfo {
public static String infoString(final Object obj) throws InstantiationException, IllegalAccessException {
Class classObj = obj.getClass();
if(classObj.getSuperclass() == null) return "";
else
return infoString(classObj.getSuperclass().newInstance()) + classObj.getSimpleName();
}
}
class A {}
class B extends A {B (int i) {}}
class C extends B { C() {super(6);}}
public class Main {
public static void main(String[] args) {
try {
System.out.print(GetInfo.infoString(new C()));
}
catch(InstantiationException e) {
System.out.print("Instantation Exception");
}
catch(IllegalAccessException e) {
System.out.print("Illegal Access Exception");
}
}
}
Ten kod działa jedynie dla klas wyłącznie posiadających domyślny konstruktor natomiast gdy któraś z klas nie ma domyślnego konstruktora wyrzuca mi wyjątek. Czy ktoś może wie co trzeba zrobić, żeby kod działał dla wszystkich klas?
Pozdrawiam