我有一个实现接口的类。从我的基类开始,我正在创建一个实现类的实例,如下所示:
Class newTab;
TransactionTabInterface tabInterface = null;
try {
newTab = Class.forName("[package] + title);
tabInterface = (TransactionTabInterface) newTab.newInstance();
tabInterface.setRootController(this);
} catch (Exception e) {
e.printStackTrace();
}
这是必要的,因为我不知道我需要实例化的类的名称(title
在其他地方确定)。
我遇到的问题是,在新课程中,我需要立即访问rootController
。我在类中有一个允许我传递rootController
引用的方法,如上面的代码所示。
通常情况下,我会在实例化类时将rootController
传递给构造函数,但我不知道如何将参数传递给上面newInstance()
调用中的构造函数。
编辑:要清楚,上面的代码在我的主类中,用于实例化一个新的FXML控制器(newTab)。
答案 0 :(得分:2)
在newTab
对象上,您可以使用构造函数的类型调用getConstructor(Class<?>...)
,以获取对具有所需args的构造函数的引用。
然后你可以调用这个构造函数的newInstance(Object...)
方法来用参数调用构造函数。