要从 JS 调用 Java,您可以使用Java.type
. 有没有办法在 Bindings 中绑定一个 java 类?
所以替换:
scriptEngine.eval("Java.type('my.own.AwesomeObj')");
有类似的东西:
Bindings bindings = new SimpleBindings();
bindings.put("AwesomeObj", my.own.AwesomeObj.class);
scriptEngine.setBindings(bingings, ScriptContext.GLOBAL_SCOPE);
我正在开发一个框架,我想为 js 脚本提供很多类,最好不要使用字符串连接和eval。目前它会抛出一个带有消息的异常: AwesomeObj 不是一个函数,这是有道理的。