(JavaFX)如何在构造函数和initialize()之间调用类的方法?

时间:2016-08-04 19:58:45

标签: java reflection javafx interface fxml

我有一个实现接口的类。从我的基类开始,我正在创建一个实现类的实例,如下所示:

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)。

1 个答案:

答案 0 :(得分:2)

newTab对象上,您可以使用构造函数的类型调用getConstructor(Class<?>...),以获取对具有所需args的构造函数的引用。

然后你可以调用这个构造函数的newInstance(Object...)方法来用参数调用构造函数。