Я работаю над проектом, в котором много открываемых и закрывающихся окон, и хотел бы создать статический класс, который принимает только несколько параметров, а затем делает все остальное.
Проблема в том, что для «контроллера» должны быть различные типы объявлений, в зависимости от того, какой контроллер нужен. Например; FXMLControllerAdd
или FXMLControllerHome
.
Я пытался передать тип в метод с параметром. Это не сработало, равно как и с использованием var в качестве объявления (оно написано на Java11), потому что тогда я получил ошибку «not find symbol» для initData () на следующей строке.
public static void nySide(Class c, String controllerPath, Dataset dataset, String tittel, Window window) {
try {
FXMLLoader loader = new FXMLLoader(c.getResource(controllerPath));
Parent root = (Parent) loader.load();
//THIS IS WHERE TO PROBLEM IS
FXMLControllerAdd controller = loader.getController();
controller.initData(dataset);
//This line gets the Stage information
Stage st = new Stage();
st.setTitle(tittel);
st.setScene(new Scene(root));
st.show();
Stage stage = (Stage) window;
stage.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Также; существует ли другой способ, который требует меньше параметров?