我用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/