在Java / Eclipse中,为什么在我的代码中设置断点会改变该语句的效果?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java / Eclipse中,为什么在我的代码中设置断点会改变该语句的效果?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含883字,纯文字阅读大概需要2分钟。
内容图文
![在Java / Eclipse中,为什么在我的代码中设置断点会改变该语句的效果?](/upload/InfoBanner/zyjiaocheng/808/c79abc739d39429293ebbad7d7134789.jpg)
我正在Eclipse中编写一个Android应用程序,并使用TextView在屏幕上显示一些文本.不同的线程有时会更改此视图的文本,使用以下代码:
runOnUiThread(new Runnable() {
@Override
public void run() {
view.setText(newLyric);
}
});
我想调试setText行以检查是否正在传入正确的String(对于某些文本,它不是自封装以适合屏幕,而对于其他文本,它是一个不同的问题).当我在该行上放置断点时,文本始终是自动换行的.当我禁用/删除断点时,通常不会被包装的文本(它是确定性的)不是自动换行的.
这对我来说没什么意义.我见过this question,我理解背后的原因,但我不明白为什么会出现这个问题.任何人都可以对此有所了解吗?我正在测试设备,如果这有任何区别.
编辑:事实证明这是一个竞争条件,现在我只需要弄清楚如何解决它…显然我只能选择一个’正确’的答案,但谢谢你们所有人的有用评论:)
解决方法:
这样的事情有时/通常是竞争状况的标志.
设置断点可以消除竞争(因此,通过稍后运行覆盖该值的“流氓”线程现在可以在捕获断点时完成,作为示例).
或者它是Heisenbug的明显案例:)
内容总结
以上是互联网集市为您收集整理的在Java / Eclipse中,为什么在我的代码中设置断点会改变该语句的效果?全部内容,希望文章能够帮你解决在Java / Eclipse中,为什么在我的代码中设置断点会改变该语句的效果?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。