Groovy映射作为JRuby中的接口方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy映射作为JRuby中的接口方法相关的知识,希望对你有一定的参考价值。

Groovy has the as keyword which enables the implementation of a Java interface by using the as keyword, its quite easy to mimic this in JRuby.
  1. module InvokableHash
  2. def as(java_ifc)
  3. # Each method will create a key in the hash which points to a block
  4. # which is called
  5. java_ifc.impl {|name, *args| self[name].call(*args)}
  6. end
  7. end
  8.  
  9. class Hash
  10. include InvokableHash
  11. end
  12.  
  13. impl = {
  14. :i => 10,
  15. :hasNext => proc { impl[:i] > 0 },
  16. :next => proc { impl[:i] -= 1 }
  17. }
  18.  
  19. iter = impl.as java.util.Iterator
  20. while (iter.hasNext)
  21. puts iter.next
  22. end

以上是关于Groovy映射作为JRuby中的接口方法的主要内容,如果未能解决你的问题,请参考以下文章

Groovy闭包 Closure ( 闭包调用 与 call 方法关联 | 接口中定义 call() 方法 | 类中定义 call() 方法 | 代码示例 )

Groovy闭包 Closure ( 闭包调用 与 call 方法关联 | 接口中定义 call() 方法 | 类中定义 call() 方法 | 代码示例 )

通过Groovy来消除代码噪声

java8 还需要groovy,吗

Groovy集合遍历 ( 使用集合的 find 方法查找集合元素 | 闭包中使用 == 作为查找匹配条件 | 闭包中使用 is 作为查找匹配条件 | 闭包使用 true 作为条件 | 代码示例 )

Groovy集合遍历 ( 使用集合的 find 方法查找集合元素 | 闭包中使用 == 作为查找匹配条件 | 闭包中使用 is 作为查找匹配条件 | 闭包使用 true 作为条件 | 代码示例 )(代