Erc*_*sen 4 javascript java namespaces nashorn
我已经使用评估了以下脚本NashornScriptEngine:
var Namespace = {
test: function()
{
return "It works";
}
}
Run Code Online (Sandbox Code Playgroud)
现在我要调用该函数test。
使用invokeFunctionnashorn引擎的方法时,将引发以下异常:
java.lang.NoSuchMethodException: No such function Namespace.test
Run Code Online (Sandbox Code Playgroud)
如何调用此函数?
您正在尝试访问名为window["Namespace.test"]而不是的全局函数window.Namespace.Test。您首先需要获得对的引用Namespace,然后可以调用invocable.invokeMethod指定Namespace作为其上下文(this)。
例如,要调用JSON.parse(),可以使用以下命令:
Object json = engine.eval("JSON"); // Or "Namespace" in your case
Object data = invocable.invokeMethod(json, "parse", contactJson); //"test" for the case you mention
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1020 次 |
| 最近记录: |