Eclipse Luna - 无法在HashMap中观察变量,评估期间出现错误

时间:2015-10-10 10:51:23

标签: java eclipse hashmap

这是测试代码:

import java.util.HashMap;
import java.util.Map;

public class Tester {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<String, Integer>();
        map.put("ABC", 1); //breakpoint here
    }
}

通常在调试模式下,当鼠标悬停在某个变量之上时,会显示该值。但似乎HashMap中的大多数变量在鼠标悬停时都没有显示其值。

put的{​​{1}}方法中,HashMap的大多数成员都会收到评估错误: enter image description here

为什么有这么多map?是什么导致了这些错误?

1 个答案:

答案 0 :(得分:1)

除此之外的原因是Eclipse调试器使用的字节码(.class文件)不包含有关方法参数名称的任何信息。这就是默认情况下编译JDK的方式。

Eclipse调试器实现了方法参数的解决方法,将它们命名为“arg0”,“arg1”等,从而使您能够在“变量”视图中检查它们。不幸的是,我认为本地方法变量没有这样的解决方法......

StackOverflow中的其他一些票证建议根据JDK的源代码重建JRE,例如:debugging not able to inspect the variables