java中,怎么让两个对象互相持有对方的引用?
如题。如果处理不好,就会发生空指针异常啊。。。
我需要在编程的时候,A a记住B b,B b记住 A a。但是我想不出有什么办法可以互相记住对方。
谢谢各位!!!
[解决办法]
A类B类都定义一个对方类型的变量!用set方法把对方成员变量传入不就可以了!
package com.xiuxiu.table;
public class A {
private B b;
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
public static void main(String[] args) {
A a = new A();
B b = new B();
a.setB(b);
b.setA(a);
}
}
class B {
private A a;
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
}
class A{
private B b;
public A(B b) {
this.b = b;
}
}
class Producer
{
private Consumer c = null;
Producer(Consumer c)
{
this.c = c;
c.firstMethod(); //持有对方引用
}
public void secondMethod()
{
System.out.println("Producer.");
}
}
class Consumer
{
private Producer p = null;
Consumer(Producer p)
{
this.p = p;
p.secondMethod(); //持有对方引用
}
public void firstMethod()
{
System.out.println("Consumer.");
}
}