我正在使用hashmap的当前详细格式化程序
key + "-" + value
当我调试代码时..
import java.util.HashMap;
public class Test1
{
public static void main(String[] args)
{
HashMap<String, Integer> wordcount = new HashMap<String, Integer>();
wordcount.put("foo", 1);
wordcount.put("bar", 1);
System.out.println("test"); // set a breakpoint here
}
}
Eclipse在变量选项卡中说..
Detail formatter error:
key cannot be resolved to a variable
value cannot be resolved to a variable
实际上,当断点停在System.out.println
...而不仅仅是wordcount HashMap<K,V> (id=16)
时,我希望看到HashMap的值,但是有内容。
答案 0 :(得分:1)
详细格式化程序用于为您提供对象(及其属性)的字符串表示形式,而不是局部变量或方法参数。 HashMap没有字段“key”和“value”,所以你的代码没有意义。
我猜你在另一个调试会话期间把细节格式化程序与一些局部变量(在像HashMap.put()这样的方法中)混淆了。
要获得一些正确工作的代码,它可能是首先在诸如put()之类的HashMap方法中设置断点的最简单方法,并且在您点击断点时实现详细格式化程序。这样您就可以直接验证新代码。
HashMaps的详细格式化程序示例:
StringBuilder buffer = new StringBuilder();
buffer.append("entries: ").append(this.size()).append("\n");
for (Map.Entry entry : entrySet()) {
buffer.append("key: ").append(entry.getKey().toString()).append(", value:").append(entry.getValue().toString()).append("\n");
}
return buffer.toString();
这将为您的示例提供以下输出:
entries: 2
key: foo, value:1
key: bar, value:1