你能幫我從我的銀行程序中刪除一個帳戶嗎?刪除帳戶,銀行程序
刪除客戶的方法工作正常。客戶可以擁有多個帳戶,並且刪除其中一個帳戶的代碼不起作用。它所做的是刪除整個客戶,而不僅僅是賬戶。 我相信它與迭代器有關。我的代碼刪除它,這是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