可以在groovy中通过对象从列表中删除对象吗?
我知道如何从列表中删除,但是我可以从列表中删除它,只知道某个对象的引用。 (我不希望列表中有空对象)
可能这是不可能的,但Groovy有惊喜。
class Foo() {
List<Boo> boos
}
class BoosHandler {
void doSomethingWithBoo() {
boos.each {
analyse(it)
}
}
void analyse(Boo boo) {
if(boo.something == "wrong") {
remove(boo) // Pseudo style for removing object boo from the list (Foo.boos)
}
}
}
答案 0 :(得分:1)
不,不可能。
我也不会这样做,因为在多线程环境中它是不可预测的......
你做得更好(你可能知道):
List<Boo> filter(String notThis) {
boos.findAll { it.something != notThis }
}
ie:返回一个新列表,不要更改原始