Java从对象调用方法

时间:2017-08-03 14:10:38

标签: java

所以,如果我有一个具有来自另一个类的对象的类:

public class Test {

    private ObjectClass object;

    public Test (){
        object = new ObjectClass();
    }

    public void testMethod(){
        //does something
    }
}

对象类:

public class ObjectClass {

    public void callMethod(){
        //call method from class Test
    }

}

对象如何调用方法testMethod?

我知道使用Runnable可以实现类似的功能,但我也需要一些参数,所以它不是一个选项。

2 个答案:

答案 0 :(得分:1)

您必须传递父对象自己的实例的子对象:

public class Test {
    private ObjectClass object;

    public Test (){
        object = new ObjectClass(this);
    }

    public void testMethod(){
        //does something
    }
}

对象类:

public class ObjectClass {
    Test parentInstance;

    public ObjectClass(Test instance){
        parentInstance = instance;
    }

    public void callMethod(){
        parentInstance.testMethod();
    }
}

答案 1 :(得分:0)

然后ObjectClass需要引用Test的实例。由于Test没有调用callMethod(),所以我假设其他的是什么?除非其他东西可以将该实例提供给方法本身,否则ObjectClass将需要保留一个实例。

执行此操作的一种方法是在构造函数上传递实例。例如:

public class ObjectClass {

    private final Test test;

    public ObjectClass(Test test) {
        this.test = test;
    }

    public void callMethod() {
        this.test.testMethod();
    }

}

Test创建ObjectClass实例时,您需要为其提供所需的参考:

object = new ObjectClass(this);