Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将函数从Java公开给Rhino_Java_Javascript_Rhino - Fatal编程技术网

将函数从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()将其与全局(或当前)作用域相关联,这看起来很完美。谢谢