我正在尝试实现循环链接列表并在调试时遇到异常" com.sun.jdi.InvocationException发生了调用方法。"
任何人都可以让我知道为什么我会得到这个例外。
public int data;
public Node head;
public CLinkedList() {
super();
}
public void append(int data){
Node n = new Node(data);
if(isEmpty()){
head = n;
n.setNext(head); // Here is the exception, but i am not getting why it is coming.
}
else{
Node temp = head;
while(temp.getNext() != head){
temp = temp.getNext();
}
temp.setNext(n);
n.setNext(head);
}
}
public boolean isEmpty(){
if(null == head){
return true;
}
return false;
}
答案 0 :(得分:0)
我找到了问题。
这个代码在执行时正常工作,但是在调试时它给了我一个例外,因为在Node类中重写了toString()方法。
@Override
public String toString() {
return "Node [data=" + data + ", next=" + next + "]";
}
在调试模式下
当我们将鼠标悬停在引用上时,内部它将调用我们已覆盖的toString()方法并将尝试打印,在这种情况下,它本质上是循环的,所以它抛出" InvocationException&#34 ;