Pregunta

Tengo un " Conjunto " sobre el que necesito usar el cierre findAll. El conjunto contiene objetos, no solo valores primitivos. Por ejemplo ... Tengo un conjunto de objetos de empleado y necesito iterar y tomar elementos de ese conjunto de objetos de empleado por atributos del empleado.

Por alguna razón, el cierre findAll parece ignorar mi cierre y devuelve un conjunto vacío.

Aquí está mi sintaxis;

dstCollection = srcCollection.findAll{
    it.age == 22
}
¿Fue útil?

Solución

Lo siguiente funciona para mí:

class Employee {
    int age

    String toString() {
        age
    }
}

def list = [ new Employee(age:22), new Employee(age:23), new Employee(age:22) ] as Set

println list
println list.findAll { it.age == 22 }

salida:

[22, 23, 22]
[22, 22]

¿Puedes publicar tu código?

Editar: agregado " como Conjunto " ;, ya que noté que la pregunta es sobre conjuntos y no listas. Esto también funciona para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top