根据堆栈跟踪,您的问题与关联
Student.toString(),因此发生了什么:
在中
Teacher.toString(),您
Student.toString()通过将
students成员放在
String串联语句中隐式调用
+students +。
Student.toString()通过
teacher在
String串联语句中包含成员,代码内的功能类似。
这意味着调用
Teacher.toString()或
Student.toString()将最终导致永无止境的循环,其中:
Teacher.toString()隐式调用
Student.toString(),后者又隐式调用
Teacher.toString(),后者又调用
Student.toString(),后者又调用…
这2个
.toString()实现以不断循环的方式来回调用,来回调用,来回调用,这最终使堆栈溢出并导致
java.lang.StackOverflowError。
若要更正此问题,应删除
.toString()对实体方法的隐式引用。作为替代,你可以有
Teacher.toString()简单输出
length()的的
students收集和可能包括的名单
Student姓名(或名称)。并在中
Student.toString(),仅包括
Teacher.name成员。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)