是否可以从ScriptEngineManager内部访问Java方法。
我发现如何使用Invocable invoke函数方法,但现在我需要相反的事情发生。
public class Main {
public static void main (String[] args) throws Exception {
String source = "var results = system.foo('example'); \n" +
" \n" +
"if(results == \"hello\") { \n" +
" print(\"ding dong.\"); \n" +
"} \n";
ScriptEngine engine = new ScriptEngineManager().getEngineByName("Javascript");
engine.eval(source);
}
}
public class System {
public static String foo (String x) throws Exception {
// do something with x
return("hello");
}
}所以当我运行system.foo时,它应该运行System.foo中的方法。