如何让我的Jython脚本同步调用Java方法?

时间:2013-03-14 06:31:47

标签: java python scripting jython

我有一个使用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)

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

让你的java_lib_help_me_out()函数将数据作为Java类或数组或类似物返回,如下所示:

public String[] java_lib_help_me_out()
{
    return new String[] { "one", "two", "three" };
}

Jython应该能够自动反省它,并让你做所有你期望的结果。

如果这不起作用,可能会发布更多详情?