java.lang.StackOverflowError: null后面跟一大串循环调用

今天遇到的bug,差不多是这样:

java.lang.StackOverflowError: null
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.Supplier.toString(Supplier.java:15) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]
	at com.xw.kgpojo.entity.SupplierEval.toString(SupplierEval.java:14) ~[classes/:na]
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453) ~[na:na]

这个 StackOverflowError 是由于 Java 中的 递归调用导致的栈溢出,具体原因是在Supplier 和 SupplierEval 类中存在互相调用,导致toString() 方法互相调用,在打印对象时无限递归

posted @ 2025-07-20 16:55  ArnoYi  阅读(57)  评论(0)    收藏  举报