所以,如果我有一个具有来自另一个类的对象的类:
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可以实现类似的功能,但我也需要一些参数,所以它不是一个选项。
答案 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);