2013-09-30 3 views
0

빠른 질문이있었습니다. 다른 클래스에서 채워진 DTO 객체를 반환하는 메소드가 있습니다. 그 메소드를 호출하고있는 다음 몇 가지 값에 액세스하려고합니다. 반환되는 Object 이 구문을 이해하려면 문제가 발생했습니다. 그것은 "결과"를 반환합니다. 나는 목록이 포함되어 반환하고루프에서 반환 된 객체에 액세스

DTO : "변수 결과는이 위치에서 널 (null) 일 수있다 널 포인터 액세스"나는 중 하나에 접근 할

: 저는 현재 오류를 얻고있다 그 목록에있는 값. 아래는 나의 코드 스 니펫이다. 도와 줘서 고마워!


for (Integer i = 0; i < array.size(); i++) { 
     // System.out.println(array.get(i)); 

      GetAccountRewardSummaryRequest request = new GetAccountRewardSummaryRequest(); 
      AccountRewardSummaryDTO result = null; 

      request.accountKey = new AccountIdDTO(array.get(i)); 

      RewardServicesImpl rewardServicesImpl = new RewardServicesImpl(); 

      rewardServicesImpl.getAccountRewardSummary(request); 

      // This will return an AccountRewardSummaryDTO, print out and see if it is returning properly 

      System.out.println(result.rewards.get(6)); 

     // System.out.println(request.accountKey); 

     } 
+0

'result'은 null입니다. 이 값을 null로 설정합니다. 다른 값으로 설정하지 않으면 null 일 수 있습니다. 컨텍스트가 없으면 당신이 묻고있는 것이 무엇인지 명확하지 않습니다. –

답변

2

그것은 귀하의 질문에서 명확하지,하지만 난 의심 이 있음 :

rewardServicesImpl.getAccountRewardSummary(request); 

가 있어야한다 : 당신이 반환 된 값을 사용하려면

result = rewardServicesImpl.getAccountRewardSummary(request); 

메서드에서 해야합니까 그걸로 뭔가.

result 변수를 필요할 때까지 선언하지 않으면 코드가 명확 해집니다. 여기에 int 대신 Integer을 사용하지 않아도됩니다. 배열 변수가 혼란 또한

RewardServices service = new RewardServicesImpl(); 
for (int i = 0; i < array.size(); i++) { 
    GetAccountRewardSummaryRequest request = new GetAccountRewardSummaryRequest(); 
    request.accountKey = new AccountIdDTO(array.get(i)); 
    AccountRewardSummaryDTO result = service.getAccountRewardSummary(request); 
    System.out.println(result.rewards.get(6)); 
} 

언급 한 바와 같이, 당신의 변수가 명확 array라는 사실이 아니다 : 당신이 정말로 서비스를 다시 사용할 수 없습니다하지 않는 한 또한, 당신은뿐만 아니라 일단 것을 만들 수 있습니다 .

+0

고마워요! 네, 지금은 분명하지 않지만, 당신의 설명은 완벽했습니다. – parchambeau

관련 문제