[英]Accessing superclass method of subclass through another class in java
這個問題的最佳解決方案是什么?
這是超類
public class Views<T> {
private T controller;
public Views() {
}
public Stage getStage(Node object){
return (Stage) object.getScene().getWindow();
}
public T getController(){
return controller;
}
public void setController(T controller){
this.controller = controller;
}
}
我有這個界面:
public interface UserView extends Observer{
public void setLoginObjects(Parent root);
public void loginStartUI() throws Exception;
public void setCriarUserObjects(Parent root, User user);
public void criarUserStartUI(User user) throws Exception;
}
我有這個視圖子類:
public class UserViewImpl extends Views<UserController> implements UserView{
...
我有這門課:
public class UserController {
private UserView view;
private UserDAOImpl model;
public UserController(UserView view, UserDAOImpl model) {
this.model = model;
this.view = view;
view.setController(this);
this.model.addObserver(view);
}
...
這個問題的最佳解決方案是什么? 我應該把Views
和UserView
放在一起嗎? (這個解決方案的問題是我會有更多的視圖,例如我有ParqueView
和ParqueViewImpl
,它們基本上具有與Views
相同的方法,所以會有重復的代碼,我想避免這種情況)
主要的問題是,我的內UserController
我傳遞的參數UserView
,它不能訪問超類的方法,我需要訪問setController
它位於Views
類,它沒有任何意義的類型更改UserView
中查看userController
因為 MVC
看起來您在這里不需要泛型。 簡單地使用一個接口就足夠了。
創建一個Controller
接口,您的兩個控制器將實現該接口。 然后你可以完全擺脫<T>
並使用這個接口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.