由于某种原因,我的客户对象为空。
问题描述:
我有一个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是每个客户的账户对象列表。
答
在未来,如果你的代码抛出一个NPE,你应该在你的帖子异常的指针哪一行对应于你的示例代码:
- 如果您在
for(Customer
抛出NPE循环,那么你的preferredCustomers
字段是null
。 - 如果它在
customer.getAccountList()
行上抛出NPE,那么preferredCustomers
集合中的元素之一是null
。 - 如果它在
for(Account account
循环中抛出一个NPE,那么其中一个preferredCustomers
的帐户列表为null
。 - 如果它在
totalAssets+=account.getBalance();
行上抛出一个NPE,则列表中的一个帐户是null
。它也可能是平衡字段是一个null
Long
对象。
由于@ColinD提到,推荐学习how to use a debugger in Eclipse。
您的循环是正确的,它最有可能是preferredCustomers包含空值。 – rodion
你将不得不在你创建/填充'ArrayList'的地方显示代码片段。 – Baz
您的getBalance函数没有收到余额。 – Wug