当发现特定对象时,我正在尝试从列表中删除对象 privacy 对当前用户是私有(private)的
books.eachWithIndex{ obj, i ->
if((obj.book.private).equals(true)){
def status = bookService.getBookStatus(obj.book)
if(!status){
books.remove(i)
}
}
}
尝试移除对象时抛出错误
错误 errors.GrailsExceptionResolver - null java.util.ConcurrentModificationException
问:有什么方法可以从列表中删除对象本身 或者您是否必须单独存储索引值并从每个循环外部删除对象?
最佳答案
更实用的方法可能会有所帮助:
def publicBooks = books.findAll { obj ->
!obj.book.isPrivate() || bookService.getBookStatus(obj.book)
}
请注意,findAll() 返回一个新 集合,而不是修改现有集合。
关于arrays - Groovy:从其自身的列表中删除和对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938431/