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

问题描述:

我有一个foreach循环遍历每个首选客户,并总结他们的余额以创建其总资产。但是,每次查看客户对象时,都会将其评估为空。 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); 
    } 
} 

另外,Arraylist AccountList是每个客户的账户对象列表。

+2

您的循环是正确的,它最有可能是preferredCustomers包含空值。 – rodion

+0

你将不得不在你创建/填充'ArrayList'的地方显示代码片段。 – Baz

+2

您的getBalance函数没有收到余额。 – Wug

在未来,如果你的代码抛出一个NPE,你应该在你的帖子异常的指针哪一行对应于你的示例代码:

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

由于@ColinD提到,推荐学习how to use a debugger in Eclipse