gpt4 book ai didi

java - 在 Java Scripting 中的 JavaScript 脚本中绑定(bind)方法调用

转载 作者:IT老高 更新时间:2023-10-28 20:41:57 27 4
gpt4 key购买 nike

假设我有一个 Javascript 文件

function js_main(args){
/* some code */
var x = api_method1(some_argument);
/* some code */
}

我尝试用 javax.scripting 以通常的方式运行它

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
engine.eval(...);

现在我想用我的 Java 类在 Javascript 中处理对 api_method1 的调用。我想要某种调用映射/绑定(bind),即每次脚本调用 api_method1(arg) 方法

public Object api_method1(Object arg){ ... }

(与引擎放在同一类中)将被调用。

我能做到吗?

最佳答案

  1. 使用 engine.createBindings() 制作一个 Bindings 对象;
  2. 将一个暴露你的方法的对象放入具有某个名称的绑定(bind)中:

    Bindings b = engine.createBindings();
    b.put("api", yourApiObject);
    engine.setBindings(b, ScriptContext.ENGINE_SCOPE);
  3. 那么在 JavaScript 中就会有一个全局的“api”对象你可以调用:

    api.method1( "foo", 14, "whatever" );

该设施易于使用,但要小心您来回传递的内容;将 JavaScript 类型转换为 Java 类型并没有多大作用。

关于java - 在 Java Scripting 中的 JavaScript 脚本中绑定(bind)方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11126263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com