繁体   English   中英

从实例化对象在主类中调用方法

[英]Call method in main class from instantiated object

我想做的是这样的:

public class MainClass {
    private UIController uIController;

    MainClass() {
        uIController = new UIController();
    }

    public void MethodIWantToCall() {
        //Do Something
    }
}

UIController类的示例:

public class UIController {
    UIController() {
        //Call a method in MainClass here, for example MethodIWantToCall()
    }

    public void MethodA {
        //Call a method in MainClass here, for example MethodIWantToCall()
    }
}

我想做的是将UIController传递给MainClass命令,在用户与UI交互时调用其方法或将值返回给MainClass。

您需要将MainClass实例的引用传递给UIController实例,例如:

public class UIController {
    private final MainClass mainClass;
    UIController (final MainClass mainClass) {
         this.mainClass = mainClass;
         //Call a method in MainClass here, for example MethodIWantToCall()
         this.mainClass.MethodIWantToCall();
    }

    public void MethodA() {
        //Call a method in MainClass here, for example MethodIWantToCall()
         this.mainClass.MethodIWantToCall();             
    }
}

然后

uIController = new UIController(this);

PS:Java中的方法应以小写字母开头。

您可以创建实例字段:

public class MainClass {
    public static MainClass instance;
    public MainClass() {
        instance=this;
    }
    public void method() {}
}

然后,调用:MainClass.instance.method(); 要么:

public class MainClass {
    public MainClass() {
        new AnotherClass(this);
    }
    public void method() {}
}
public class AnotherClass {
    public AnotherClass(MainClass main) {
        main.method();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM