gpt4 book ai didi

java - 尝试创建数组时发生堆栈溢出错误

转载 作者:行者123 更新时间:2023-11-30 07:13:45 27 4
gpt4 key购买 nike

我正在尝试创建一个包含 10 个 Account 对象的数组,但是当我尝试运行它时,出现了 Stack Overflow 错误。我不知道为什么会收到错误消息,Google 也没有给出任何结果。谢谢你的帮助。

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);
}
}

最佳答案

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

你看到这里的模式了吗?它被称为无限递归,或者至少直到堆栈内存用完为止——这会导致 StackOverflowException。

解决方案:
我不会让我的 Account 类包含一个 Account 数组,而是将该数组放在另一个类中,比如 AccountCollection 或 Accounts 或者甚至 Customer,如果所有帐户都由一个客户持有的话。

关于java - 尝试创建数组时发生堆栈溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19171487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com