Uso del cierre de la colección findAll en Groovy
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
}
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