首页 > 代码库 > JAVA循环依赖
JAVA循环依赖
最近看到一个问题:如果有两个类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的对象。
如果此时我们运行该类的话,会报如下错误:
<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Monaco; color: #ff2600 }</style>Exception in thread "main" java.lang.StackOverflowError
问题出现的原因在于A类和B类之间出现了循环依赖。
JAVA循环依赖
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。