博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
com.sun.jdi.InvocationException occurred invoking method
阅读量:6156 次
发布时间:2019-06-21

本文共 668 字,大约阅读时间需要 2 分钟。

hot3.png

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

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

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

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

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

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

转载于:https://my.oschina.net/xiaominmin/blog/1585257

你可能感兴趣的文章
2017-2018-1 20165313 《信息安全系统设计基础》第八周学习总结
查看>>
《代码敲不队》第四次作业:项目需求调研与分析
查看>>
菜鸡互啄队—— 团队合作
查看>>
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法...
查看>>
SparseArray
查看>>
第二章
查看>>
android背景选择器selector用法汇总
查看>>
[转]Paul Adams:为社交设计
查看>>
showdialog弹出窗口刷新问题
查看>>
java
查看>>
Vue.js连接后台数据jsp页面  ̄▽ ̄
查看>>
关于程序的单元测试
查看>>
mysql内存优化
查看>>
都市求生日记第一篇
查看>>
Java集合---HashMap源码剖析
查看>>
SQL优化技巧
查看>>
thead 固定,tbody 超出滚动(附带改变滚动条样式)
查看>>
Dijkstra算法
查看>>
css 动画 和 响应式布局和兼容性
查看>>
csrf 跨站请求伪造相关以及django的中间件
查看>>