java - 如何为信用卡生成随机数

标签 java jakarta-ee

我创建了一个代码来生成随机信用卡号,并使用此方法根据用户输入返回信用卡号。由于某种原因,我在返回值时遇到问题。请帮忙。

 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/

相关文章:

java - 相当于 Java 编码的 C# 代码

java - 从歌曲中获取当前音频频率 - Java(也许使用 FFT?)

java - 握手警报 : Unrecognized_name Liberty Profile

java - 如何从 jar 文件中调用自定义方法

sql-server-2008 - 在 SQL Server 2008 中使用 Hibernate

java - HTML 5 视频标签不适用于 Tomcat(已编辑)

java - 加快我的 Java tcp 传输速度!

java - 根据焦点在 jpanel 中设置默认按钮。

java - java将一维数组中的数据传输到二维数组中

java - Hibernate 是否需要 Java EE