我在使用JRuby 1.6.0.RC1。我想通过提供一个实现Ruby each
方法的外观,更加通俗地从Ruby使用某些Java库上的java.util.Iterators
。从Java迭代器创建惯用Ruby迭代器的好模式外观模式是什么?
我第一次尝试基本上是这样的:
def each_property(myJavaObj)
i = myJavaObj.myIterator
while i.hasNext
yield i.next
end
end
然而,当我打电话each_property {|p| puts "#{p}"}
我得到的错误:LocalJumpError: yield called out of block
。
任何人都可以提示我做错了什么,或指出一个更好的模式从Ruby调用Java迭代器?
谢谢Koraktor,它让我的代码运行。虽然 – 2011-01-31 15:24:13