簡體   English   中英

調用未知類的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM