将项添加到列表时java.lang.StackOverflowError

时间:2014-04-14 16:02:57

标签: java stack-overflow

尝试将项目添加到列表并打印它们,它会编译,但我得到一个运行时错误,其中堆栈溢出错误。这就是错误打印出来的内容:

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;
    }

}

1 个答案:

答案 0 :(得分:6)

在您的班级List中,您有一个List实例字段,该字段在其声明中初始化

public List athletes = new List();

这意味着每个List都会有List List ListStackOverflowError,令人作呕,导致{{1}}因为{{1}}正在建设中。

我不确定你对这个领域的意图,因为你没有在任何地方使用它。只需删除它。