我正在尝试使用反射调用继承类的参数化构造函数。 但构造函数不是在子类中实现的,只在超类中实现。
class Parent{
public Parent(String value){
doSomeThing(value);
}
}
class Horst extends Parent{}
class Eva extends Parent{}
class AndereKlasse{
...
Class parentClass = MyConfig.getParentClass; // its here Horst.class or Eva.class
Constructor parentConstructor = Parent.class.getConstructor(String.class);
parentConstructor.newInstance("just a String");
...
}
我只从子类中获取空构造函数,但不从Parent-class中获取。有解决方法吗?
答案 0 :(得分:1)
这不起作用,因为子类Eva和Horst都必须定义自己的构造函数,以指定它们如何调用它们的超类构造函数。在任何情况下,调用超类的构造函数都不会创建子类的对象。您需要在子类上调用构造函数,以便创建该子类的对象。