我有一个使用Jython的Java库,允许用户添加自定义脚本以与库的特定部分进行交互。
让Java为脚本提供数据很简单,但是我想说我想在Jython脚本中遵循这种模式:
data = do_stuff()
# Heavy lifting! have the java lib do this
results = java_lib_help_me_out(data)
do_stuff_with_results(results)
是否可以轻松完成此操作? 我意识到我可以使库充当服务并使用REST进行相互通信,或者我可以使用回调并使该过程更加环绕:
data = do_stuff()
#heavy lifting
java_lib_help_me_out(data, callback)
...
def callback(results):
do_stuff_with_results(results)
有更好的方法吗?
答案 0 :(得分:2)
让你的java_lib_help_me_out()函数将数据作为Java类或数组或类似物返回,如下所示:
public String[] java_lib_help_me_out()
{
return new String[] { "one", "two", "three" };
}
Jython应该能够自动反省它,并让你做所有你期望的结果。
如果这不起作用,可能会发布更多详情?