Supponendo tua collezione è stata una lista, è possibile utilizzare il curry per popolare il parametro in più di chiusura con il vostro oggetto:
def someColl = ["foo", "bar", "foo", "baz", "foo"]
def filterClosure = { it, param -> it.getParam == param }
myColl = someColl.findAll(filterClosure.curry([getParam:'foo']))
assert ["foo", "foo", "foo"] == myColl
Nel codice precedente, il filterClosure "it" sarà assegnato ciò che è passato a curry come parametro e "param" è passato un elemento di raccolta da findAll. Ciò non funzionerebbe per una raccolta di mappe poiché findAll richiede una chiusura con uno o due parametri.
fonte
2009-09-07 06:27:54