2013-06-06 4 views
0

Java에서 C#으로 AmazonSQS를 사용하는 함수를 변환하는 임무가 주어졌습니다. 기능에서 나는이 같은 행을 받았다 나는이 라인이 구체적으로 무엇을하고 있는지 확실하지,하지만 나는 그것이 "SentTimestamp"라는 라벨/속성에 대해 SQS 메시지를 검색하고 저장하는 생각C# Amazon SQS to Java Amazon SQS

// x is a Message that is passed in as a parameter 

Amazon.SQS.Model.Attribute sentTimestampx = x.Attribute.SingleOrDefault(a => a.Name == "SentTimestamp"); 

두 번 표시 이 값은 sentTimestampx입니다.

Java에서 동등한 기능을 찾으려고했지만 지금까지 그렇게 할 수 없었습니다. Java에서 AmazonSQS 메시지는 getAttributes()라는 함수를 가지고 있지만 처리 방법이 확실하지 않은 Map을 반환합니다.

C# 라인이 실제로 수행하는 작업에 대한 설명과 Java에서 getAttributes() 메소드가 반환 한 맵을 사용하여 기능을 시뮬레이트하는 방법을 얻을 수 있습니까?

답변

0

이 동등해야한다 :

Amazon.SQS.Model.Attribute sentTimestampx = null; 

for (Amazon.SQS.Model.Attribute a : x.getAttributes()) 
{ 
    if (a.Name == "SentTimestamp") 
    { 
     if (sentTimestampx == null) 
     { 
      sentTimestampx = a; 
     } 
     else 
     { 
      throw new Exception("Boooooh! there is more than one matching elements!"); 
     } 
    } 
} 

나는 원래 의도였다하지 않는 한이 하나를 발견했습니다 때 좋은 근사 하나 개 이상의 일치하는 요소에 대한 체크를 제거하고 루프를 중단하는 것이라고 생각한다 정말 예외를 던질 수 있습니다.

관련 문제