2012-07-13 59 views
0

你好鄉親頂點 - Salesforce的 - 地圖

我有一個關於心尖地圖小查詢。我有一張地圖map <String, list <Account>>。我正在嘗試執行以下操作 -

需要做什麼:我將一個鍵傳遞給字符串變量,然後將該字符串傳遞給Map.get()方法以獲取該鍵的值。在這裏,它沒有給我正確的答案。即使當我使用System.Debug()打印出地圖時,它也會以不同的方式打印出地圖!

String Id = 'Some Id that is the key in the map'; 
List <Account> testList = Map.get(Id); 

這不給我相應的價值,我不知道爲什麼!

BUT

當我輸入下面的代碼

,值被完全打印出來。

for(String s : Map.keySet()){ 
    List <Account> TestList = Map.get(s); 
    System.Debug('TestList' + TestList); 
} 

測試列表實際打印出什麼是應該打印出來,即它打印出在那裏,當我打印地圖不打印出預期中的各鍵。

什麼是預期:我想傳遞一個鍵到Map.get()方法來檢索結果,但它顯然不在我的情況發生。

各種幫助真的很感謝!

+1

在代碼的第一位,你的Map.get(Id)返回什麼或只是null? – SMGoodyear 2012-07-13 21:32:08

+0

@SMGoodyear它只是返回null。 – subodhbahl 2012-07-13 21:36:52

+4

好爽。我注意到您在密鑰集中使用Salesforce ID的幾個地方是否代表Id,或者是否是Id的另一種形式?我只問,因爲我想知道它是否是SF ID,並且將它們存儲爲字符串,您可能會遇到有關ID與15和18字符表示形式有關的問題。順便提一下,這是一個完整的黑暗刺傷。如果情況並非如此,那麼我們將不得不提出另一種可能性 - 但總是首先將顯而易見的方法排除在外。 – SMGoodyear 2012-07-13 22:02:24

回答

1

的只有兩件事我能想到的這裏有:

  • 這是一個情況下的問題。爲了驗證,轉換你的鑰匙爲大寫:

theMap.put(stringKey.toUpperCase(),theAccountList);

  • 通過使用ID作爲變量名(本身就是一個類型),你得到奇怪的結果

正如其他人已經在這裏提到的,請張貼實際的代碼段,所以我們可以進一步幫助或關閉此問題。

謝謝

相關問題