Java 由于某种原因,我的客户对象为空。

Java 由于某种原因,我的客户对象为空。,java,foreach,abstract-class,Java,Foreach,Abstract Class,我有一个foreach循环,循环遍历每个首选客户,汇总他们的余额以创建他们的总资产。但是,每次查看customer对象时,它都会将其计算为null。PreferredCustomer是抽象类Customer的子类。我假设我没有正确地执行foreach循环,但我不确定我做错了什么 public static void getBalance() { for(Customer customer: preferredCustomers){ ArrayList<Accoun

我有一个foreach循环,循环遍历每个首选客户,汇总他们的余额以创建他们的总资产。但是,每次查看customer对象时,它都会将其计算为null。PreferredCustomer是抽象类Customer的子类。我假设我没有正确地执行foreach循环,但我不确定我做错了什么

 public static void getBalance() {
    for(Customer customer: preferredCustomers){
        ArrayList<Account> al = customer.getAccountList();
        for(Account account: al){
            totalAssets+=account.getBalance();
            //balance = account.getbalance();
        }
        customer.setBalance(totalAssets);
    }
}
公共静态void getBalance(){
for(客户:首选客户){
ArrayList al=customer.getAccountList();
用于(账户:al){
totalAssets+=account.getBalance();
//余额=account.getbalance();
}
客户资产净值(总资产);
}
}

此外,Arraylist AccountList是每个客户的帐户对象列表。

将来,如果您的代码抛出NPE,您应该在帖子中包含异常,并用指针指向与示例代码对应的行:

  • 如果您在
    for(Customer
    循环中抛出一个NPE,那么您的
    preferredCustomers
    字段是
    null
  • 如果它在
    customer.getAccountList()
    行上抛出一个NPE,那么
    preferredCustomers
    集合中的一个元素是
    null
  • 如果它在
    for(Account Account
    循环中抛出一个NPE,则您的
    首选客户之一的
    帐户列表为
    null
  • 如果它在
    totalAssets+=account.getBalance();
    行上抛出一个NPE,那么列表中的一个帐户是
    null
    。也可能是余额字段是
    null
    长对象

正如@ColinD所提到的,建议学习。

您的循环是正确的,很可能preferredCustomers包含空值。您必须显示创建/填充
ArrayList
的代码段。您的getBalance函数没有获得平衡。您是否使用调试器进行了调试?