Java 由于某种原因,我的客户对象为空。
我有一个foreach循环,循环遍历每个首选客户,汇总他们的余额以创建他们的总资产。但是,每次查看customer对象时,它都会将其计算为null。PreferredCustomer是抽象类Customer的子类。我假设我没有正确地执行foreach循环,但我不确定我做错了什么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
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,您应该在帖子中包含异常,并用指针指向与示例代码对应的行:
- 如果您在
循环中抛出一个NPE,那么您的for(Customer
字段是preferredCustomers
null
- 如果它在
行上抛出一个NPE,那么customer.getAccountList()
集合中的一个元素是preferredCustomers
null
- 如果它在
循环中抛出一个NPE,则您的for(Account Account
首选客户之一的
帐户列表为
null
- 如果它在
行上抛出一个NPE,那么列表中的一个帐户是totalAssets+=account.getBalance();
。也可能是余额字段是null
长对象null
正如@ColinD所提到的,建议学习。您的循环是正确的,很可能preferredCustomers包含空值。您必须显示创建/填充
ArrayList
的代码段。您的getBalance函数没有获得平衡。您是否使用调试器进行了调试?