这就是我想要做的事情:
我有一个名为RowCollection的类,它包含一个Row对象的集合,其中有一个名为edit的方法,它应该接受另一个对Row对象进行操作的方法(或闭包)作为参数.
一个groovy脚本将以下列方式使用此类的对象:
rc.edit({ it.setTitle('hello world') }); // it is a "Row" object
我的问题:
> RowCollection#edit的签名是什么样的?
>它的实现是什么样的?
解决方法:
作为替代方案,如果你使RowCollection实现Iterable< Row>并提供一个合适的iterator()方法然后应用于所有类的标准Groovy-JDK魔法将启用
rc.each { it.title = "hello world" }
并以相同的方式免费获得所有其他迭代器支持的GDK方法,包括collect,findAll,inject,any,every和grep.