Frage

Ich habe ein „Set“, das ich brauche die findAll Schließung auf verwenden. Das Set enthält Objekte, nicht nur primitive Werte. Zum Beispiel ... Ich habe eine Reihe von Mitarbeitern Objekten und ich brauche zu durchlaufen und Elemente dieses Satz von Empolyee Objekten durch Attribute des Mitarbeiters zu greifen.

Aus irgendeinem Grund scheint die findAll Schließung nur zu meiner Nähe ignorieren und eine leere Menge zurück.

Hier ist meine Syntax;

dstCollection = srcCollection.findAll{
    it.age == 22
}
War es hilfreich?

Lösung

Die folgenden Werke für mich:

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 }

Ausgabe:

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

Können Sie Ihren Code schreiben?

Edit: added „als Set“, da ich die Frage bemerkte über Mengen und nicht die Listen. Dies funktioniert auch für mich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top