首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图创建数组时堆栈溢出错误

试图创建数组时堆栈溢出错误
EN

Stack Overflow用户
提问于 2013-10-04 00:58:31
回答 1查看 660关注 0票数 2

我正在尝试创建一个由10个总计帐户对象组成的数组,但是当我尝试运行它时,我会得到一个堆栈溢出错误。我不知道我为什么会犯这个错误,谷歌也没有想出任何事情。谢谢你的帮助。

代码语言:javascript
复制
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);
        }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-04 00:59:06

让我们看看会发生什么:当您创建一个帐户对象时,它会创建一堆新帐户,每个帐户都会创建更多的帐户,每个帐户都会创建更多的帐户.

你看到这里的图案了吗?它被称为无限递归,或者至少直到堆栈内存耗尽--这会导致StackOverflowException。

下面是一个解决方案:

我不会让我的帐户类保存一个帐户数组,而是将该数组放在另一个类中,比如AccountCollection或Account,甚至可能是customer,如果所有的帐户都由一个客户持有的话。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19171487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档