gpt4 book ai didi

java 调试不能正确显示当前行

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:08 25 4
gpt4 key购买 nike

我有一个简单的 java 类,我在 main 方法和步骤中设置了一个断点,方法是单击“step into”(netbeans ide)。

预期:

green line goes to line 4 and 5 until loop ends

发生了什么:

It stays at line 4.

我可以在控制台中看到打印了 i 的值。
如果 i 被打印出来,这意味着它应该转到第 5 行,即 System.out.print(i+"> ");

为什么它停留在第 4 行直到循环结束?

这是预览:

enter image description here

This is the code i'm debugging:

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 | }

最佳答案

我之前在使用 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");
}

System.out 所在的行上添加您的断点,您的 NetBeans IDE 可能 能够看到它。我在 IntelliJ 上尝试过类似的方法,并取得了不同程度的成功。

关于java 调试不能正确显示当前行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31671271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com