我创建了一个代码来生成随机信用卡号,并使用此方法根据用户输入返回信用卡号。由于某种原因,我在返回值时遇到问题。请帮忙。
public String getIssuerCode(String issuerSymbol) {
String creditCardNumber = null;
for (int i = 0; i < 15; i++) {
switch (issuerSymbol) {
case ISSUER_MASTER_CARD:
creditCardNumber = generateMasterCard();
break;
case ISSUER_AMER_EXPRESS:
creditCardNumber = generateAmericanExpress();
break;
case ISSUER_VISA:
creditCardNumber = generateVisa();
break;
// System.out.println("error");
default:
break;
}
}
return creditCardNumber;
}
最佳答案
这里发生了一些事情。
首先,您的代码中有一个简单的拼写错误,正如 @brycem 在他的回答中已经告诉您的那样。其次,有可能在for循环和switch语句之后,creditCardNumber还没有被初始化。这意味着尚未为其分配任何值。现在这可能不可能发生,但你的编译器不知道这一点。因此,一个简单的修复方法是在开头将其分配给 null
:
public String getIssuerCode(String issuerSymbol) {
String creditCardNumber = null;
for (int i = 0; i < 15; i++) {
switch (issuerSymbol) {
case ISSUER_MASTER_CARD :
creditCardNumber = generateMasterCard();
break;
case ISSUER_AMER_EXPRESS :
creditCardNumber = generateAmericanExpress();
break;
case ISSUER_VISA:
creditCardNumber = generateVisa();
break;
default:
break;
}
}
return creditCardNumber;
}
<小时/>
编辑:
根据您下面的评论,我得出的结论是,具有此方法的类也具有 IssuerNumber。在这种情况下,你绝对应该这样做:
public String getIssuerCode() {
String creditCardNumber = null;
for (int i = 0; i < 15; i++) {
switch (this.getIssuerSymbol()) {
case ISSUER_MASTER_CARD :
creditCardNumber = generateMasterCard();
break;
case ISSUER_AMER_EXPRESS :
creditCardNumber = generateAmericanExpress();
break;
case ISSUER_VISA:
creditCardNumber = generateVisa();
break;
default:
break;
}
}
return creditCardNumber;
}
关于java - 如何为信用卡生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26964288/