你能帮我从我的银行程序中删除一个帐户吗?删除帐户,银行程序
删除客户的方法工作正常。客户可以拥有多个帐户,并且删除其中一个帐户的代码不起作用。它所做的是删除整个客户,而不仅仅是账户。 我相信它与迭代器有关。我的代码删除它,这是customerlist中的迭代器。但我该怎么做呢?
public void deleteCustomer(String customerNumber) {
Iterator<Customer> it = customers.iterator();
while (it.hasNext()) {
Customer c = it.next();
if (c.getNumber().equals(customerNumber)) {
it.remove();
}
}
}
法删除帐户(非工作):
删除客户方法
public void deleteAccount(String accountId, String customerNumber) {
Iterator<Customer> it = customers.iterator();
while (it.hasNext()) {
Customer c = it.next();
if (c.getNumber().equals(customerNumber)) {
for(Account a: c.getAccounts()) {
if(a.getAccountId().equals(accountId)) {
it.remove(); //I Think it's wrong here
}
}
}
}
}
“不工作”是什么意思? – mic4ael 2014-09-25 19:17:50
我们需要知道该客户对象的详细信息 - 您从哪里得到它,以及它的delete()方法是做什么的?它如何保存到dataqbase? – FrobberOfBits 2014-09-25 19:18:37
好的,你打电话给'it.remove',它将删除集合本身返回的最后一个元素。因此,它显然删除了您操作的“客户”对象,显然您只是想要删除该帐户?您需要为您的Account对象添加第二个迭代器,然后在遍历列表时调用正确的账户中的'remove'。 – user3062946 2014-09-25 19:20:54