[英]Call a method of unknown class
我的控制器很少,每個控制器都有 init() 方法。 問題是,我如何為每個加載的階段/控制器調用方法? 下面的代碼工作正常,但我不想為每個可能的控制器類編寫場景。
簡而言之,我想要這個:
FXMLLoader loader = new FXMLLoader(Main.class.getClassLoader().getResource("somefxmlfile.fxml"));
if (loader.getController() instanceof LoginController) {
((LoginController) loader.getController()).init();
}
被這樣的東西取代:
FXMLLoader loader = new FXMLLoader(Main.class.getClassLoader().getResource("somefxmlfile.fxml"));
if (loader.getController() instanceof Class<T extends Controller>) {
((Class<T extends Controller>) loader.getController()).init();
}
我弄亂了一段時間,無法編寫正確的代碼。
我想到了兩個想法:
Controller
,那么可以給它一個public abstract void init()
- 方法並在所有擴展Controller
類中實現它@PostConstruct
或@InitMethod
)注釋一個方法並掃描控制器中用此注釋注釋的方法並在構造后執行它來以 Spring 方式實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.