在寫專案的時候發現了一個問題,由於要求所以必須使用 EJB..
再加上自己是 JSP 上面的新手,所以也花了很多時間去處理這個高深的學問.
在剛才又遇上了一個極大的挑戰就,就是要刪除購物籃的物品,不過卻又出現了
1 | java.util.ConcurrentModificationException |
而相關的代碼大約就是
1 | // getItem() 是回傳 ArrayList |
最後的解決方法是使用 Iterator 的方法進行刪除
1 | for (Iterator it = this.getItem().iterator();it.hasNext();){ |
最後主要得到的原因是 fail-fast iterator (即第一種刪除方法) 會嘗試在 iterator 的過程中進行刪除
而第二種方法的 Iterator,卻擁有一個獨立的線程,而且有一個 mutex 鎖 ..
詳細的可以參考: http://www.javaeye.com/topic/124788