JPA:关于在实体类中添加toString方法的java.lang.StackOverflowError

JPA:关于在实体类中添加toString方法的java.lang.StackOverflowError,第1张

JPA:关于在实体类中添加toString方法的java.lang.StackOverflowError 根据学生班级的增加进行了更新

根据堆栈跟踪,您的问题与关联

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
成员。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4977303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存