A.class有一个B实例,即b。在B中,我想使用A的一些方法,我可以用一些方法来使这个变得简单吗?以下案例。
class A{
private B b = new B(this)
public void anyMethod(){
}
}
class B{
private A mA;
B(A a){
mA = a;
}
public void someMethod(){
mA.anyMethod();
}
}
是的,我正在寻找更优雅的解决方案
答案 0 :(得分:0)
代码 在Java中有效,我同意这些评论 - new B(this)
看起来有问题。将该行移动到构造函数将无济于事,因为在A构造函数结束之前,仍然存在B在A中使用方法的风险。
我认为将B的实例化与A的初始化过程(包括构造函数)完全分开是一个更好的主意,稍后只需使用init方法设置它,就像这样
class A {
private B b;
public A() {
}
public void initB() {
b = new B(this);
}
public void anyMethod() {
}
}
后来:
A a = new A();
a.initB();