调试时发生com.sun.jdi.InvocationException调用方法

时间:2017-10-05 07:27:07

标签: java

enter image description here

我正在尝试实现循环链​​接列表并在调试时遇到异常" 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;
    }

enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了问题。

这个代码在执行时正常工作,但是在调试时它给了我一个例外,因为在Node类中重写了toString()方法。

@Override
    public String toString() {
        return "Node [data=" + data + ", next=" + next + "]";
    }

在调试模式下

当我们将鼠标悬停在引用上时,内部它将调用我们已覆盖的toString()方法并将尝试打印,在这种情况下,它本质上是循环的,所以它抛出" InvocationException&#34 ;