Java 为什么调试指针移动到源方法的第一行,而不是移动到当前存在调试指针的方法的第一行?

Java 为什么调试指针移动到源方法的第一行,而不是移动到当前存在调试指针的方法的第一行?,java,Java,在什么情况下,Eclipse调试器会发生以下情况 第1类: public class Sample { public static void sourceMethod(BeanClass bean, Map<String, List<String>> hmMap){ try { System.out.println(); enterData(bean, hmMap); } catch

在什么情况下,Eclipse调试器会发生以下情况

第1类:

public class Sample {
    public static void sourceMethod(BeanClass bean, Map<String, List<String>> hmMap){
        try {
            System.out.println();
            enterData(bean, hmMap);
        } catch (Exception e) {
            e.getMessage();
        }
    }

    public static void enterData(BeanClass bean, Map<String, List<String>> hmMap){
        try {
            System.out.println("hello");//Comment or Uncomment this line while debugging 
            System.out.println("Value : "+hmMap.get("KeyValue").get(0));
            bean.setResult(true);
        } catch (Exception e) {
            e.printStackTrace();
            bean.setResult(false);
        }
    }

    public static void main(String args[]){
        BeanClass bean = new BeanClass();
        Map<String, List<String>> hmMap = new HashMap<String, List<String>>();
        List<String> list = new ArrayList<String>();
        list.add("hi");
        list.add("hello");
        hmMap.put("KeyValue", list);
        Sample.sourceMethod(bean, hmMap);
    }
}
预期场景:当在当前存在调试指针的方法中编辑并保存一段代码时,调试指针应移动到当前存在调试指针的方法的第一行


实际场景:当在调试指针当前存在的方法中编辑并保存一段代码时,调试指针将移动到源方法的第一行,而不是移动到调试指针当前存在的方法的第一行。

在调试期间更改代码将使该方法无效从头开始重新执行,因为它必须重置该方法中的局部变量。 有关如何工作或如何正确使用调试选项的更多详细信息,请参阅下面的链接。。

如果您运行的是Java虚拟机(JVM)V1.4或更高版本,Eclipse 支持名为热插拔Bug修复(JVM中不可用)的功能 V1.3或更低版本)。它允许在测试过程中更改源代码 调试器会话,这比退出应用程序要好, 更改代码,重新编译,然后开始另一个调试 一场要使用此函数,只需在编辑器中更改代码 并恢复调试

还有一件事:在调试时,只需更改任何代码并保存它,eclipse就会自动将修改后的代码传输到目标VM。
请注意,您不能对代码进行结构更改,例如添加新方法、更改方法签名或添加新字段。但是您可以更改方法中的代码。

在调试期间更改代码将使该方法从一开始就重新执行,因为它必须重置该方法中的局部变量。 有关如何工作或如何正确使用调试选项的更多详细信息,请参阅下面的链接。。

如果您运行的是Java虚拟机(JVM)V1.4或更高版本,Eclipse 支持名为热插拔Bug修复(JVM中不可用)的功能 V1.3或更低版本)。它允许在测试过程中更改源代码 调试器会话,这比退出应用程序要好, 更改代码,重新编译,然后开始另一个调试 一场要使用此函数,只需在编辑器中更改代码 并恢复调试

还有一件事:在调试时,只需更改任何代码并保存它,eclipse就会自动将修改后的代码传输到目标VM。
请注意,您不能对代码进行结构更改,例如添加新方法、更改方法签名或添加新字段。但是您可以在一个方法中更改代码。

对我来说,Eclipse4可以正常工作。6@ChrisH编辑代码并使其简短!更新了上面的代码。@Zefick请尝试更新的代码!对我来说,Eclipse4可以像预期的那样工作。6@ChrisH编辑代码并使其简短!更新了上面的代码。@Zefick请尝试更新的代码!
public class BeanClass {

    private boolean result = false;

    public boolean getResult() {
    return result;
    }

    public void setResult(boolean setResult) {
    this.result = setResult;
    }
}