在Java中,我有类似这样的东西
public class A {
private String title;
public A () {
// do something
}
public void run () {
B b = new B();
b.run();
}
public void changeTitle(String newTitle) {
this.title = newTitle;
}
}
public class B {
public B() {
// do something
}
public void run() {
}
}
我的问题是在B的run()方法中,是否可以在A中调用changeTitle()方法来更改实例化B的A的实例的标题?
谢谢
发布于 2011-04-09 00:50:53
只有当B
包含对A
实例的引用时,它才能调用A
上的方法。您可以将A的一个实例传递给B来实现这一点。
public void run () {
B b = new B(this);
b.run();
}
public class B {
private A a;
public B(A a) {
this.a = a;
a.changeTitle("Ha!");
}
}
发布于 2011-04-09 00:50:31
如果B在其构造函数中接受类型A,并且当您说new B时,传入类似于
public void run () {
B b = new B(this);
b.run();
}
现在,您有了正在使用的A对象的副本。
发布于 2011-04-09 00:50:14
好的。在B
的构造函数中传递一个A
实例。
https://stackoverflow.com/questions/5598261
复制相似问题