2012-07-13 9 views
0

안녕하세요 밥상에이펙스 - 세일즈 포스 -지도

나는 에이펙스의지도에 관한 작은 질문이있다. 지도가 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); 

이 값은 나에게 해당 값을 제공하지 않으며 이유를 알지 못합니다!

하지만

나는 아래의 코드를 입력는, 값이 완벽하게 인쇄되어 있습니다.

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

테스트 목록은 실제로는 그것이 예상대로 내가지도를 인쇄 할 때 그것을 밖으로 인쇄되지 않는 값을 출력 각 키에 대한 즉를 출력하도록되어 무엇을 출력합니다.

예상되는 내용 : 결과를 검색하기 위해 Map.get() 메소드에 키를 전달하고 싶지만 내 경우에는 그렇지 않습니다.

어떤 종류의 도움이라도 정말 고맙습니다! 내가 여기 생각할 수

+1

첫 번째 비트 코드에서 Map.get (Id)는 null을 반환하나요? – SMGoodyear

+0

@SMGoodyear 그냥 null을 반환합니다. – subodhbahl

+4

괜찮 았습니다. 몇 가지 위치에서 ID로 키를 참조하십시오. 키 집합에서 Salesforce Id를 사용하고 있습니까? 아니면 다른 형태의 ID입니까? 나는 그것이 SF ID인지 궁금해하기 때문에 물어볼 것입니다. 당신은 15 개의 ID와 18 개의 문자로 구성된 ID로 문제가있을 수있는 문자열로 저장하고 있습니다. 이것은 어두운 데서 완전히 찌르는 것입니다. 이것이 사실이 아니라면 우리는 또 다른 가능성을 생각해 내야 할 것입니다. 그러나 항상 명백한 것을 먼저 꺼내는 것이 좋습니다. – SMGoodyear

답변

1

유일한 두 가지가 있습니다 :

  • 그것은 경우 문제입니다. 대문자로 열쇠를 변환 확인하려면 :

theMap.put (stringKey.toUpperCase(), theAccountList); (자체 타입) 변수 이름으로 ID를 사용하여

  • , 당신은 이상한 결과
  • 을 받고

이미 다른 사람이 여기에 언급 한 것처럼, 그래서 우리는 더 도움이 될 수 있습니다 실제 코드 세그먼트를 게시하시기 바랍니다 또는이 문제를 종료하십시오.

감사합니다.

관련 문제