whi*_*rue 10 java debugging netbeans
我有一个简单的java类,我在main方法和步骤中设置了一个断点,点击'step into'(netbeans ide).
预期:
绿线进入直线
4,5直到循环结束
怎么了:
它保持一致
4.
我可以在控制台中看到i的值被打印出来.
如果我得到印刷,这意味着它应该到第5行 System.out.print(i+" > ");.
为什么它一直停留在第4行,直到循环结束?
这是预览:
2 | public class NewClass2 {
3 | public static void main(String[] args) {
4 | for (int i = 0; i < 10; i++) {
5 | System.out.print(i+" > ");
6 | }
7 | System.out.println("end of the loop");
8 | }
9 | }
Run Code Online (Sandbox Code Playgroud)
在使用IntelliJ之前,我已经看到了类似的行为.我相信正在发生的事情是System.out.println()在构建过程中实际上调用了.因此,System.out一旦完成代码构建,调用就不存在.当你去调试时,调试器无法获得这个代码的钩子,因为它并不是你在屏幕上看到的形式.
顺便说一句,你应该得到一个徽章,用于在你的OP中发布一个非常好的动画GIF.我认为这是我第一次看到这个,并且在你的问题中它非常好用.
如果你想"欺骗"IDE能够"看到" System.out调用,您可以尝试使用以下代码:
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
String stuff = "";
System.out.print(i + " > " + stuff);
stuff += "more stuff";
}
System.out.println("end of the loop");
}
Run Code Online (Sandbox Code Playgroud)
直接添加您的断点System.out,您的NetBeans IDE 可能会看到它.我尝试过与IntelliJ类似的东西,取得了不同程度的成功.