【问题标题】:Invoking javascript function from java with arguments使用参数从 java 调用 javascript 函数
【发布时间】:2016-08-14 18:16:02
【问题描述】:

我正在努力从 java 调用 javascript 函数。我的问题来自于整个函数实际上是作为字符串参数接收的:

public void selectMethod(Map<T> item, String function)

其中函数对象实际上是整个java脚本方法。我需要用 nashorn 调用这个方法

ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");

我还需要使用地图项传递函数。当 js 函数修改地图对象时,我必须在 java 中打印出来。

我会给予任何帮助。

【问题讨论】:

    标签: java nashorn


    【解决方案1】:

    您可以在 Invocable [https://docs.oracle.com/javase/8/docs/api/javax/script/Invocable.html#invokeFunction-java.lang.String-java.lang.Object...-] 上使用 invokeFunction 方法

    Nashorn 引擎实现了 javax.script.Invocable 接口。从您的“selectMethod”java 方法中,您可以执行以下操作:

    ((Invocable)engine).invokeFunction(function, item);
    

    我假设传递的脚本函数名称是全局脚本函数的名称[已在引擎中通过之前完成的“eval”调用定义]。

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 2012-03-29
      • 1970-01-01
      相关资源
      最近更新 更多