6

我爱上了 Groovy 并尝试越来越多地使用它。现在我必须使用 Oracle Forms Jdapi 库。使用这个库时,你会写很多这样的代码:

JdapiIterator progIterator = getWorkForm().getProgramUnits();
while(progIterator.hasNext()) {
    ProgramUnit currProgUnit = (ProgramUnit) progIterator.next();
    ...
}

当然我想写

getWorkForm().programUnits.each {
    ...
}

但是,我从来没有为现有的 Java 库编写过 Groovy 接口,因此需要一些帮助。我知道Groovy 2.0 的扩展方法,但在这种情况下,我正在考虑一个在不同命名空间中具有相同名称的类,它只委托给我想要保留的函数。

提供功能的最佳方法是什么,以及each适用于集合的所有其他闭包?如果您指出我正确的方向,我将不胜感激!

4

1 回答 1

6

您需要提供的唯一方法就是iterator()方法。然后,您将免费获得所有 Groovy 对象迭代方法(each()find()any()every()collect()、 ...)!

于 2013-02-21T17:37:58.680 回答