Java从对象调用方法
所以如果我有一个类,它有一个来自另一个类的对象:Java从对象调用方法,java,Java,所以如果我有一个类,它有一个来自另一个类的对象: public class Test { private ObjectClass object; public Test (){ object = new ObjectClass(); } public void testMethod(){ //does something } } 对象类: public class ObjectClass { public
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
}
}
public class ObjectClass {
Test parentInstance;
public ObjectClass(Test instance){
parentInstance = instance;
}
public void callMethod(){
parentInstance.testMethod();
}
}
对象如何调用方法testMethod
我知道使用Runnable可以实现类似的功能,但我还需要一些参数,因此它不是一个选项。您必须将子对象传递给父对象自己的实例:
public class Test {
private ObjectClass object;
public Test (){
object = new ObjectClass(this);
}
public void testMethod(){
//does something
}
}
对象类:
public class ObjectClass {
public void callMethod(){
//call method from class Test
}
}
public class ObjectClass {
Test parentInstance;
public ObjectClass(Test instance){
parentInstance = instance;
}
public void callMethod(){
parentInstance.testMethod();
}
}
然后,
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);
它只是
object.callMethod()
。。。不太清楚为什么这会让您感到困惑,因为您正在谈论如何使用线程。如果ObjectClass
需要在Test
上调用一个方法,那么它需要引用Test
的一个实例。很可能传递给callMethod
方法或ObjectClass
构造函数。David提供了一种实现您所需的方法。现在我建议你问问自己为什么需要这样做。依赖注入框架呢?您可以通过这种方式将即时测试注入ObjectClass。。。尽管我承认这可能有点过分:)