将函数从Java公开给Rhino
使用将函数从Java公开给Rhino,java,javascript,rhino,Java,Javascript,Rhino,使用ScriptableObject.putProperty从Java向Rhino提供对象很容易,但是有没有办法公开顶级函数?也就是说,我可以让Rhino中的脚本调用foo(),并调用Java代码吗?嗯。也许我没有正确理解你的问题(你说的“顶级函数”是什么意思?),但如果你已经向Rhino公开了java对象,你可以调用它的方法。如果我不清楚,很抱歉。虽然我可以公开一个对象,它允许我调用foo.bar(),但理想情况下我只想调用bar()。所以,我所说的“顶级函数”是指一个函数,它是当前正在执行的
ScriptableObject.putProperty
从Java向Rhino提供对象很容易,但是有没有办法公开顶级函数?也就是说,我可以让Rhino中的脚本调用foo()
,并调用Java代码吗?嗯。也许我没有正确理解你的问题(你说的“顶级函数”是什么意思?),但如果你已经向Rhino公开了java对象,你可以调用它的方法。如果我不清楚,很抱歉。虽然我可以公开一个对象,它允许我调用foo.bar(),但理想情况下我只想调用bar()。所以,我所说的“顶级函数”是指一个函数,它是当前正在执行的Rhino作用域的属性,如果这更有意义的话。哦,我明白了。您可以定义FunctionObject:并通过putProperty()将其与全局(或当前)作用域相关联,这看起来很完美。谢谢