我正在尝试创建一个由10个总计帐户对象组成的数组,但是当我尝试运行它时,我会得到一个堆栈溢出错误。我不知道我为什么会犯这个错误,谷歌也没有想出任何事情。谢谢你的帮助。
import java.util.Scanner;
public class Account {
private int id;
private double balance;
private Scanner input = new Scanner(System.in);
private Account[] atm = new Account[10];
public Account(){
id = 0;
balance = 0;
for (int i = 0; i < atm.length; i++){
atm[i] = new Account(); //Here is where Eclipse says the problem is
atm[i].setID(i);
atm[i].setBalance(100.0);
}
}发布于 2013-10-04 00:59:06
让我们看看会发生什么:当您创建一个帐户对象时,它会创建一堆新帐户,每个帐户都会创建更多的帐户,每个帐户都会创建更多的帐户.
你看到这里的图案了吗?它被称为无限递归,或者至少直到堆栈内存耗尽--这会导致StackOverflowException。
下面是一个解决方案:
我不会让我的帐户类保存一个帐户数组,而是将该数组放在另一个类中,比如AccountCollection或Account,甚至可能是customer,如果所有的帐户都由一个客户持有的话。
https://stackoverflow.com/questions/19171487
复制相似问题