我已經使用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
我假設你使用了「綁定」。你不會爲「類」動態添加「屬性」。您只能定義動態全局變量。 –