我爱上了Groovy并尝试越来越多地使用它。现在我必须使用Oracle Forms Jdapi库。使用这个库时,你会编写很多这样的代码:
JdapiIterator progIterator = getWorkForm().getProgramUnits();
while(progIterator.hasNext()) {
ProgramUnit currProgUnit = (ProgramUnit) progIterator.next();
...
}
和cource我想写
getWorkForm().programUnits.each {
...
}
但是,我从未在现有Java库中编写Groovy接口,需要一些帮助。我知道Groovy 2.0's extension methods,但在这种情况下,我正在考虑一个在不同命名空间中具有相同名称的类,它只委托我想保留的函数。
提供each
功能的最佳方法是什么,还有适用于集合的所有其他闭包?如果你指出我正确的方向,我将不胜感激!
答案 0 :(得分:6)
您需要提供的唯一方法是iterator()
方法。然后,您可以免费获得所有Groovy Object迭代方法(each()
,find()
,any()
,every()
,collect()
,...)! p>