2012-07-13 66 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作为变量名(本身就是一个类型),你得到奇怪的结果

正如其他人已经在这里提到的,请张贴实际的代码段,所以我们可以进一步帮助或关闭此问题。

谢谢