public class JSBindings extends SimpleBindings{
public void bind(String key, Object value){
this.put(key, value);
}
}
我在代码中将JSBindings的实例传递给ScriptEngine.eval(script, bindings)
。但是,我只能将java对象绑定(放入)到SimpleBindings。如何从java代码绑定全局javascript函数?
即
bind("UTILS", new SomeJavaObject()) //works fine..
但我想绑定javascript函数。也许是这样的:
bind("list", "function(){return new java.util.ArrayList()}")
//doesn't work.. list is just a string
所以当我在我的javascript中说list()
时,它必须调用这个bind函数并创建一个ArrayList实例。是否可以通过这种方式从SimpleBindings实例绑定javascript函数?