2017-04-10 14 views
0

にそれが割り当てられた初期値を使用したことがない私は、この次のエラーを取得する:CDsImplTl.javaにおけるメソッドgetCDsByTokenは()ライン141Fortifyはテストエラー:変数

上の変数paymentCDAppにそれが割り当てられた初期値を使用したことがありませんこれは私のコードです:

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

上記のコードでは、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ブロックの後にヌルチェックを行う必要があります。 tryブロックの後にコードを置いていないので、私は示唆を与えることはできません。ただし、変数をnullに初期化すると問題が解決します。

+0

Eclipseで@SuppressWarnings(null)を追加したいと思うように実装すれば、私はそのようにしなければなりませんか?または私はSurpressWarningsなしであなたの方法を実装する方法がある – Nali

+0

それはあなたがヌルチェックが必要と言った理由です。 'if(paymentCDApp!= null)'がうまくいっていることを確認してください。もう一つ、あなたは確かです 'CDImplTl.javaのgetCDsByToken()メソッドは、行141の変数paymentCDAppに割り当てられた初期値を使用しません.'というエラーはありますか?それとも別の警告ですか? –

+0

私はそれを強化する必要があり、それは問題としてマークされていますが、低い優先度でマークされているため、解決しなければならないのか、それともそのままにしておかなければならないのですか? – Nali