在以下情況下Eclipse Debugger發生了什麼情況?爲什麼調試指針移動到源方法的第一行而不是移動到調試指針當前存在的方法的第一行?
第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);
}
}
二級:
public class BeanClass {
private boolean result = false;
public boolean getResult() {
return result;
}
public void setResult(boolean setResult) {
this.result = setResult;
}
}
預期方案:當一段代碼被編輯並保存在所述調試指針是當前存在,則方法調試指針應該移動到調試指針當前所在方法的第一行。
實際場景:當一段代碼被編輯並保存在所述調試指針是當前存在的方法則調試指針移動到源方法的第一行,而不是移動到方法,其中調試的第一線指針當前存在。
對我來說,它按預期工作,Eclipse 4.6 – Zefick
@ChrisH編輯代碼並簡化代碼!更新了上面的代碼。 –
@Zefick嘗試更新的代碼! –