尝试将项目添加到列表并打印它们,它会编译,但我得到一个运行时错误,其中堆栈溢出错误。这就是错误打印出来的内容:
Exception in thread "main" java.lang.StackOverflowError
at List.<init>(List.java:5)
at List.<init>(List.java:9)
at List.<init>(List.java:9) <----- this line is repeated quite a few times
这是我的代码,其中包含添加和打印列表的方法。
public class List {
private AthleteNode front;
public List(){
front = null;
}
public List athletes = new List();
//add athlete to the end of the list
public void add(Athlete a){
AthleteNode node = new AthleteNode (a);
AthleteNode current; //temp node to iterate over the list
if(front == null)
front = node;//adds the first element
else{
current = front;
while (current.next !=null)
current = current.next;
current.next=node;
}
}
答案 0 :(得分:6)
在您的班级List
中,您有一个List
实例字段,该字段在其声明中初始化
public List athletes = new List();
这意味着每个List
都会有List
List
List
,StackOverflowError
,令人作呕,导致{{1}}因为{{1}}正在建设中。
我不确定你对这个领域的意图,因为你没有在任何地方使用它。只需删除它。