我收到以下错误消息:CDsImplTl.java中的方法getCDsByToken()从不使用它在第141行分配给变量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);
        }

到目前为止,我仍不了解错误消息,我该怎么查找?我的意思是所有东西都用在这里不正确吗?

最佳答案

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块之后进行空检查,以确定是否分配了正确的值。我无法提供任何建议,因为您没有将代码放在try块之后。但是,将变量初始化为null将解决您的问题。

关于java - 强化测试错误: never uses the initial value it assigns to the variable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43321970/

10-11 20:53