com.sun.jdi.InvocationException occurred invoking method

在Java程序debug调试的时候,在断点中查看某个对象的值时,出现了以上的错误: com.sun.jdi.InvocationException occurred invoking method,显示在调用的时候发生了调用异常,如图

com.sun.jdi.InvocationException occurred invoking method_第1张图片

对象时一个ArrayList对象,我开始以为是对象的内容有问题,所以看一下list中的内容,如下

com.sun.jdi.InvocationException occurred invoking method_第2张图片

居然显示一个空指针的异常,但是这个空指针的异常是在详情格式化的时候发生的错误,也就是说在debug的时候显示不了当前数组的值,所以显示了一个空指针的异常。然后去stackflow看了大神们的解答,都说是toString()的问题,所以我就去看了对应的类,果真是重写了toString()方法,在debug显示值的时候调用toString()方法时出现了问题,但是这个问题并不影响程序的运行,只是影响debug调试。

解决办法:检查toString()方法是否重写,重写是否合理、规范。

参考链接:https://stackoverflow.com/questions/4123628/com-sun-jdi-invocationexception-occurred-invoking-method

里面还有人说到重写hashCode()方法也会导致这个错误,不过我还没有遇到,从调试的情况来看,debugger应该是调用toString()方法,但是hashCode()方法有影响就不知道是为什么了。


你可能感兴趣的:(Java)