使Java库"Groovy"

Chr*_*ipp 6 groovy

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

JdapiIterator progIterator = getWorkForm().getProgramUnits();
while(progIterator.hasNext()) {
    ProgramUnit currProgUnit = (ProgramUnit) progIterator.next();
    ...
}
Run Code Online (Sandbox Code Playgroud)

和cource我想写

getWorkForm().programUnits.each {
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

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

小智 6

您需要提供的唯一方法是iterator()方法.那么你得到所有的Groovy对象,迭代方法(each(),find(),any(),every(),collect(),...)是免费的!