3

この次のコードでソナーを介して例外を取得するiam。これを解決するにはどうすればよいですか。提案してください。

    @Override 
     public boolean validate(BaseInfo infoObject) { 
     boolean isValid = true; 
     AckTransferPaymentInfo ackTransferPaymentInfo = (AckTransferPaymentInfo) infoObject; 

Dodgy-未チェック/未確認のキャスト
com.vocalink.acsw.common.validation.info.BaseInfoからcom.vocalink.acsw.validation.rule.T170Ruleのcom.vocalink.acsw.common.validation.info.AckTransferPaymentInfoへの未チェック/未確認のキャスト.validate(BaseInfo)

AckTransferPaymentElement payment = ackTransferPaymentInfo.getTransferPayment();  
if(CreditDebitIndicator.CRDT.equals(ackTransferPaymentInfo.getCreditDebitIndicator()) 
&& ackTransferPaymentInfo.getOriginalPaymentAccount().getAccountName() != null 
4

1 に答える 1

7

infoObject のタイプが正しいことを確認し、正しくない場合は適切に処理できます。

if (!(infoObject instanceof AckTransferPaymentInfo)) {
    throw new AssertionError("Unexpected type: " + infoObject);
}
AckTransferPaymentInfo ackTransferPaymentInfo = (AckTransferPaymentInfo) infoObject;

infoObject が null の場合に、これが意図したとおりに動作することを確認する必要があります。

于 2012-08-23T21:18:04.957 に答える