Maps 无法使用get返回Salesforce映射

Maps 无法使用get返回Salesforce映射,maps,salesforce,Maps,Salesforce,我有以下代码: Map Map\u Account=新地图[选择名称、Id 从帐户 其中名称='任何公司名称']; System.debug'---任务映射列表---'+映射任务频率; 系统。调试'****任务映射******'+映射任务频率。获取'Any Company Name'; 在Workbench中,我得到了以下结果,在Salesforce中编写代码时也得到了这些结果: DEBUG|------Task Map List------{001g0000005PCWbAAO=Account

我有以下代码:

Map Map\u Account=新地图[选择名称、Id 从帐户 其中名称='任何公司名称']; System.debug'---任务映射列表---'+映射任务频率; 系统。调试'****任务映射******'+映射任务频率。获取'Any Company Name'; 在Workbench中,我得到了以下结果,在Salesforce中编写代码时也得到了这些结果:

DEBUG|------Task Map List------{001g0000005PCWbAAO=Account:{Name=Any Company Name,
DEBUG|*****Task Map*****null
有人能告诉我为什么当我在映射中传递字符串值时,它返回Null,即使映射中显然有一个帐户

非常感谢您的帮助


谢谢

问题在于映射的键是Id,而不是字符串,您可以从第一条调试消息中看到它。

不幸的是,对于您的用例,Pavel所描述的完全正确

为了使代码按您希望的方式工作,必须重写代码

Map<String, Account> Map_Task_Frequency = new Map<String,Account>();
for(Account a:  [SELECT Name,Id
                        FROM Account 
                        WHERE name = 'Any Company Name'] ){
  Map_Task_Frequency.put(a.Name, a);
}

System.debug('------Task Map List------' + Map_Task_Frequency);
System.debug('*****Task Map*****' + Map_Task_Frequency.get('Any Company Name'));
这没有多大意义,因为您将按名称引用您的帐户记录,这取决于您的WHERE条件,因此您将在地图上只显示一个值,其中包含上次加载的帐户