我收到以下错误消息: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/