可以在groovy中通过对象从列表中删除对象吗?

时间:2018-01-11 15:07:20

标签: groovy

可以在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)
        }
    }
}

1 个答案:

答案 0 :(得分:1)

不,不可能。

我也不会这样做,因为在多线程环境中它是不可预测的......

你做得更好(你可能知道):

List<Boo> filter(String notThis) {
    boos.findAll { it.something != notThis }
}

ie:返回一个新列表,不要更改原始