码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA循环依赖

时间:2017-02-20 22:27:49      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:依赖   read   logs   错误   sys   div   示例   exce   mon   

最近看到一个问题:如果有两个类A和B,A类中有一个B的对象b,B类中有一个A的对象a,那么如何解决这两个类的相互依赖关系呢?

示例代码1

public class  Test{
	public static void main(String[] args) {
		B testb = new B();
	}
}

class A{
	public B b;
	public A (){
		b = new B();
	}
	public void printB(){
		System.out.println("Ab");
		b.printA();
	}
	
	public void printA(){
		System.out.println("AA");
	}
   }

class B{
	public A a;
	public B (){
		a = new A();
	}
	public void printB(){
		System.out.println("BB");
		a.printA();
	}
	
	public void printA(){
		a.printA();
	}
   }

可以看到A类的构造方法中,new了一个B的对象,同时B类的构造方法中,new了一个A的对象。

如果此时我们运行该类的话,会报如下错误:

Exception in thread "main" java.lang.StackOverflowError

问题出现的原因在于A类和B类之间出现了循环依赖。

JAVA循环依赖

标签:依赖   read   logs   错误   sys   div   示例   exce   mon   

原文地址:http://www.cnblogs.com/cfyrwang/p/6421657.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!