java - Java/JavaFX 如何处理未知类型?
问题描述
所以我对 Java 和 JavaFX 还很陌生,我遇到了一个问题,我不确定解决它的最佳方法。
public void goToDestination(String destination, String username, Privilege privilege) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("../../resources/fxml/" + destination + ".fxml"));
Parent root = loader.load();
SomeController controller = loader.getController();
controller.setUsername(username);
controller.setPrivilege(privilege);
stage.setTitle("Yuconz System");
stage.setScene(new Scene(root));
stage.setMaximized(true);
stage.show();
}
我的问题是当我设置控制器变量时我不知道它将是什么控制器。我尝试使用泛型,但我无法访问对象的方法。如果有人可以帮助我了解解决此问题的最佳方法,我将不胜感激。
解决方案
为包含 set 方法的控制器创建父类或接口,而不是将它们放在所有控制器中。然后你可以使用类型 ParentController。
public void goToDestination(String destination, String username, Privilege privilege) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("../../resources/fxml/" + destination + ".fxml"));
Parent root = loader.load();
ParentController controller = loader.getController();
controller.setUsername(username);
controller.setPrivilege(privilege);
stage.setTitle("Yuconz System");
stage.setScene(new Scene(root));
stage.setMaximized(true);
stage.show();
}
推荐阅读
- c++ - C ++将分配移动到未初始化的对象?
- winforms - 带有 WebBrowser 控件的 WinForms 应用程序中的 html5 视频流没有声音
- phpmyadmin - 无法将任何数据库导入 Xampp PHPmyAdmin 无论大小
- c++ - Objective-C 变量布局
- java - 大米之谜 - 为什么“If else”语句不能正确循环?
- go - 如何填充作为函数引用传递的接口切片
- c++ - 如何在 c++ 中使用 fstream 读取 .txt 文件
- html - Mathjax 换行问题
- machine-learning - 在 word2vec 中获取两个单词之间最频繁的上下文
- javascript - javascript混淆中的承诺