java - 使用变量实例化对象数组

标签 java arrays

我用Java编写了一些类,但是当我运行程序时,我收到错误“ArrayIndexOutOfBoundsException”,罪魁祸首的类是这样的:

public class Bank {

    private String name;
    private int maxbankaccount;
    private int activebankaccount;
    private String radice = "IT8634";
    private Conto[] bankaccount = new Conto[maxbankaccount];

    public void addconto(String cf) {
        bankaccount[activebankaccount] = new Conto(radice + activebankaccount , cf);
        activebankaccount++;
    }

    public Bank(String name, int maxbankaccount) {
        this.name = name;
        this.maxbankaccount = maxbankaccount;
    }
}   

我编写了一个测试器类来测试:

public class TestBank {

    public static void main (String[] args) {

        Bank b1 = new Bank("Fidelity", 10);

        b1.addconto("PROVA");
    }
}

由于我使用调试的数组似乎没有犯逻辑错误,因此我意识到在创建对象数组时,maxbankaccount 变量不是 10(在 Test 中传递的值) )但作为默认值(0),然后我尝试直接传递 10 并且效果很好。为什么传入的 maxbankaccount 值不是 10,而是 0?

最佳答案

private Conto[] bankaccount = new Conto[maxbankaccount];

此初始化发生在构造函数的其余部分运行之前。

将其移至构造函数中:

public Bank(String name, int maxbankaccount) {
    this.name = name;
    this.maxbankaccount = maxbankaccount;
    this.bankaccount = new Conto[maxbankaccount];
}

关于java - 使用变量实例化对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52879502/

相关文章:

将指针的值复制到变量,指针作为参数传递 C 程序

java - Hibernate、Postgres 和数组类型

java - 我的 ListView 未显示(Android Studio)

c - strcmp() unsigned char 到文件中的字符串

java - 比较字符串和整数 (java)

java - 重用循环多维数组的代码

python - 将多维矩阵转换为一维向量

php - 动态将数据插入数据库

java - 在 Spring Security Oauth2 中使用 RemoteTokenServices 配置资源服务器

java - JPA : removing from a collection 中管理双向关系时出现问题