今天做了了个链表,debug的时候总是Method threw ‘StackOverflowError’ exception. Cannot evaluate xx.toString();根据字面意思是站内存溢出,toString()方法相关;
是不是很奇怪,toString都能栈溢出?
回想栈溢出的情况:局部数组过大(就是栈内存被局部变量撑爆),递归调用(前面的方法栈会越来越大);
我的业务类似于一个双向链表,前面指向后面,后面又指向前面节点。
默认的toString会将类变量再调用toString,这样会导致toString一直被调用就像迭代一样无限循环..
解决方法:重写toString(),不要让当前对象调用引用对象(子节点等)的toString。
版权声明:本文为huaruanIT原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。