接口和抽象类都不能指定要实现的构造函数的类(参见How can I force a Constructor to be defined in all subclass of my abstract class)
现在我有一个由许多子类实现的接口。程序通过反射在运行时发现这些子类 我想有一个实例化它们的插件工厂(例如see here)。
问题是所有示例都假设所有子类都有特定类型的构造函数(例如,没有参数)。但我无法确定这一点。 由于我不能强制子类具有特定的构造函数,我该怎么做才能避免运行时错误?
谢谢!
答案 0 :(得分:2)
因此,由于您使用了反射,您可以使用getConstructor(java.lang.Class...)(抱歉,无法粘贴JavaDoc方法的链接)以查看ctor是否存在,如果是,请使用特定参数调用它。 / p>