【发布时间】:2019-03-21 08:04:23
【问题描述】:
所以这只是我尝试创建对象的代码的一部分。我添加的只是构造函数的主体。我的代码中可能有其他问题,但我只是想检查这是否是创建艺术家对象的方法。我得到了错误:
Exception in thread "main" java.lang.StackOverflowError
在 tss.Artist。 (Artist.java:26) 被多次列出。我只是一个困惑的java菜鸟。任何帮助将不胜感激:)
public Artist(String name) {
Artist artist = new Artist(name);
}
【问题讨论】:
-
那是无限循环...每次创建对象“艺术家”时,您都会创建一个对象“艺术家”...
-
你在这里进行无限递归,这就是你得到堆栈溢出的原因。在您的构造函数中,您正在调用相同的构造函数,依此类推,直到您的堆栈已满。
-
这是在调试器中单步执行代码的最快方法,可以查看代码在做什么以及为什么。
-
@Wufo 它是无限的,但不是循环,而是递归调用
-
@Stultuske 是的,你是对的。这是一个递归调用...
标签: java oop object recursion stack-overflow