1

接口和抽象类都不能规定子类要实现的构造函数类型(请参阅如何强制在我的抽象类的所有子类中定义构造函数

现在我有一个由许多子类实现的接口。程序通过反射在运行时发现这些子类。
我想要一个插件工厂来实例化它们(参见这里的例子)。

问题是所有示例都假定所有子类都具有特定类型的构造函数(例如,没有参数)。但我不能确定这一点。由于我不能强制子类具有特定的构造函数,我应该怎么做才能避免运行时错误?

谢谢!

4

1 回答 1

2

因此,由于您使用反射,您可以使用getConstructor(java.lang.Class...)(抱歉,无法粘贴指向方法 JavaDoc 的链接)来查看 ctor 是否存在,如果存在,则使用特定的调用它论据。

于 2012-05-16T17:35:44.800 回答