我有以下用于调试的代码:
public class DebugTest {
public static void main(String[] args) {
methodOne();
System.out.println("main method");
}
private static void methodOne() {
System.out.println("methodone");
methodTwo();
}
private static void methodTwo() {
methodThree();
}
private static void methodThree() {
System.out.println("methodThree");
}
}
不知何故,方法调用step over(f6)
上的methodOne()
不会移到下一行,而是进入了函数调用。我在这里想念东西吗?
答案 0 :(得分:0)
这是因为methodTwo()不存在。之所以跳到那里,是因为您想跳过导致问题的方法,而不是跳过它而转到问题行。
如果在methodOne()打印中替换并调用methodTwo(),您会看到它跳到methodTwo()未打印的行。
public static void main(String[] args) {
methodOne();
System.out.println("main method");
}
private static void methodOne() {
System.out.println("methodone");
methodTwo();
}
如果创建methodTwo(),通常会跳过此行。
答案 1 :(得分:0)
public static void main(String[] args) {
methodOne();
System.out.println("main method");
}
private static void methodOne() {
System.out.println("methodone");
methodTwo();
}
那是因为我没有实现第二种方法。更改输出语句和顺序,实现第二种方法并对其进行调试。