为了账号安全,请及时绑定邮箱和手机立即绑定

Java类交叉引用的问题

Java类交叉引用的问题

陪伴而非守候 2019-03-20 09:19:07
最近对Java中两个类交叉引用的问题有点迷惑,如下代码类A    public class A {            private B  b;            A(){            b = new B();            System.out.println("class A is building");        }    }类Bpublic class B {    private A a;    B(){        a = new A();        System.out.println("class B is building");    }}测试类 public class Test {         public static void main(String[] args) {         A a = new A();     }     }测试方法运行后,提示Exception in thread "main" java.lang.StackOverflowError请各位大哥帮忙分析分析
查看完整描述

3 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

你不是说了问题在哪里了吗? 
就是在这个循环引用上,你构造A的时候需要一个B,在构造需要的B的时候,又需要构造一个新的A,然后这个A又需要构造另一个新的B,这个新的B又需要A。。。 
解决这个问题,你需要一个默认的构造参数,里面什么都不需要的,然后构造出两个空对象再去相互引用。

查看完整回答
反对 回复 2019-04-25
?
慕后森

TA贡献1802条经验 获得超5个赞

死循环,溢出


查看完整回答
反对 回复 2019-04-25
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

过度耦合和依赖导致的,这就是为什么会有Spring的诞生


查看完整回答
反对 回复 2019-04-25
  • 3 回答
  • 0 关注
  • 766 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号