我已经使用Java ScriptEngine执行脚本,该脚本可能会改变共享的Java类。我想知道,如果可以在java类中支持动态创建的变量?Java ScriptEngine - 在java类中创建动态变量
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.put("javaclass", jClass);
engine.eval("javaclass.propertyThatDoesNotExist = 'test'"); // throws exception
我尝试了与groovy相同的代码,它也出现了同样的错误(没有公共属性)。我用这篇文章http://stackoverflow.com/a/6569565/1228906,我能够在脚本中动态创建属性,但在ScriptEngine中做同样的操作失败。虽然谢谢! – webber
我假设你使用了“绑定”。你不会为“类”动态添加“属性”。您只能定义动态全局变量。 –