如何编写可以接受groovy闭包的java类方法

这就是我想要做的事情:

我有一个名为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.

上一篇:java – Groovy 2.5.0为methodcalltransformation提供了noclassdeffounderror


下一篇:验证文件/获取Java / Groovy中的真实文件类型?