簡體   English   中英

java中通過另一個類訪問子類的超類方法

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

這個問題的最佳解決方案是什么? 我應該把ViewsUserView放在一起嗎? (這個解決方案的問題是我會有更多的視圖,例如我有ParqueViewParqueViewImpl ,它們基本上具有與Views相同的方法,所以會有重復的代碼,我想避免這種情況)

主要的問題是,我的內UserController我傳遞的參數UserView ,它不能訪問超類的方法,我需要訪問setController它位於Views類,它沒有任何意義的類型更改UserView中查看userController因為 MVC

看起來您在這里不需要泛型。 簡單地使用一個接口就足夠了。

創建一個Controller接口,您的兩個控制器將實現該接口。 然后你可以完全擺脫<T>並使用這個接口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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