If you want a pure Java solution check out lambdaj
http://code.google.com/p/lambdaj/
Besides the possibility to define and use closure in a DSL-style, it also allows to manipulate collections in a functional way, without explicitly write closures or loops