2017-04-10 4 views
0

내가이 다음과 같은 오류가 변수에 할당 초기 값 사용하지 않는다 : CDsImplTl.java의 방법 getCDsByToken은()는 행에 변수 paymentCDApp에 할당 초기 값을 사용하지를 141포티 테스트 오류 :이

여기 내 코드는 다음과 같습니다.

public GetCDsByTokenResponse getCDsByToken(String token) throws Exception { 
     apiKey.setKey(); 
     IfPaymentCDApp paymentCDApp = new IfPaymentCDApp(); 

     try { 
      String customerId = getCustomerIdByCDId(token); 
      RetrieveCDCommand retrieveCDCommand = getRetrieveCDCommand(customerId, token); 
      CD cD = null; 
      cD = retrieveCDCommand.execute(); 
      paymentCDApp = AppUtils.mapStripeCDToExtCD(cD); 
     } 

지금까지 오류 메시지를 이해할 수 없지만 무엇을 조회해야합니까? 나는 여기서 모든 것이 정확하지 않다는 것을 의미합니까?

답변

2
IfPaymentCDApp paymentCDApp = new IfPaymentCDApp(); 

위의 코드에서 paymentCDApp에 개체를 할당합니다. 그러나 나중에 try 블록에서 동일한 변수에 다른 값을 할당합니다.

paymentCDApp = AppUtils.mapStripeCDToExtCD(cD); 

(IfPaymentCDApp paymentCDApp = new IfPaymentCDApp();에 의해 주어진) 당신이 이전에 할당 된 값은 그 라인과 paymentCDApp = AppUtils.mapStripeCDToExtCD(cD);이 포함 된 행 사이에 사용되지 않습니다. 그런 이유로 당신은 그런 과오를 얻고있다.

처음에는 변수를 null으로 초기화 할 수 있습니다. 더 나은 방법입니다.

apiKey.setStripeApiKey(); 
IfPaymentCDApp paymentCDApp = null; 

try { 
    String customerId = getCustomerIdByCDId(token); 
    RetrieveCDCommand retrieveCDCommand = getRetrieveCDCommand(customerId, token); 
    CD cD = null; 
    cD = retrieveCDCommand.execute(); 
    paymentCDApp = AppUtils.mapStripeCDToExtCD(cD); 
} 

올바른 값이 할당되었는지 확인하기 위해 try 블록 다음에 null 체크가 필요할 수 있습니다. try 블록 다음에 코드를 삽입하지 않았으므로 어떤 제안도 할 수 없습니다. 그러나 변수를 null로 초기화하면 문제가 해결됩니다.

+0

이클립스에서 @SuppressWarnings (null)을 추가하고 싶다면 Eclipse를 설치해야합니까? 또는 SurpressWarnings없이 귀하의 방법을 구현할 수있는 방법이 있습니까 – Nali

+0

그래서 내가 당신이 null 수표가 필요하다고 말했다. 'if (paymentCDApp! = null)'을 사용하여 여러분의 일이 잘되었는지 확인하십시오. 한 가지 더요, CDImplTl.java의 getCDsByToken() 메서드는 변수 141에있는 paymentCDApp에 할당 된 초기 값을 사용하지 않습니다.'오류입니까? 아니면 또 다른 경고일까요? –

+0

나는 그 물건을 요새화하고있다. 그것은 문제로 표시되어 있지만, 낮은 우선 순위로 표시되어 있기 때문에 나는 그것을 풀어야하는지 아니면 그대로 두어야하는지 모른다. – Nali