簡體   English   中英

Eclipse:詳細格式化程序錯誤: <key> 無法解析為變量

[英]Eclipse: Detail formatter error: <key> cannot be resolved to a variable

我正在使用當前的詳細信息格式化程序作為哈希圖

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處停止時HashMap的值...不只是wordcount HashMap<K,V> (id=16) ,還包括其內容。

詳細信息格式化程序用於為您提供對象(及其屬性)的字符串表示形式,而不用於局部變量或方法參數。 HashMap沒有字段“鍵”和“值”,因此您的代碼實際上沒有任何意義。

我猜您在另一個調試會話期間將詳細信息格式化程序與一些局部變量(在類似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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM