Dax*_*xon 2 arrays groovy list
当我发现特定对象隐私对当前用户来说是隐私时,我正试图从列表中删除对象
books.eachWithIndex{ obj, i ->
if((obj.book.private).equals(true)){
def status = bookService.getBookStatus(obj.book)
if(!status){
books.remove(i)
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试删除对象时抛出错误
ERROR errors.GrailsExceptionResolver - null java.util.ConcurrentModificationException
问:有没有办法从列表中删除对象本身,还是必须单独存储索引值并从每个循环外部删除对象?
更实用的方法可能会有所帮助:
def publicBooks = books.findAll { obj ->
!obj.book.isPrivate() || bookService.getBookStatus(obj.book)
}
Run Code Online (Sandbox Code Playgroud)
请注意,findAll()返回一个新集合,而不是修改现有集合.
| 归档时间: |
|
| 查看次数: |
6442 次 |
| 最近记录: |