我的问题与closure conversion有关。我想测试一个从jruby代码实现功能接口的proc。
我有一个简单的过程,如
proc { print 'hey!' }
实现像
这样的java功能接口public void doStuff()
由于客户端对象是
的Java对象public class MyClient {
private MyInterface iface;
public MyClient(MyInterface iface) {
this.iface = iface;
}
public void doHighLevelStuff() {
this.iface.doStuff();
}
}
它运作正常,因为jruby设法"演员" proc进入java功能界面。所以,这部分还可以。
我的问题是测试这段代码,从jruby调用它。我不知道如何告诉jruby将该proc作为MyInterface
的实现处理,以便能够调用实际方法doStuff
而不是ruby规范call
。
所以,问题是如何告诉jruby将proc视为给定的java接口。
答案 0 :(得分:0)
client = MyClient.new { print 'hey! }
然后client.doHighLevelStuff
应该可以正常运行...如果你有一个proc实例,只需将它作为一个块传递给(&proc
)到构造函数中。