我的问题与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将该过程视为MyInterface
的实现,以便能够调用实际的方法doStuff
,而不是ruby规范call
。
因此,问题是如何告诉jruby将proc视为给定的java接口。
发布于 2015-10-08 10:20:23
client = MyClient.new { print 'hey! }
和client.doHighLevelStuff
应该工作得很好……如果您有一个proc实例,只需将它作为块传入(&proc
)到构造函数中。
https://stackoverflow.com/questions/32818974
复制相似问题