javax.script.Invocable
中的 invokeMethod
和 invokeFunction
有以下区别:
-
invokeMethod:
- 用于调用脚本对象上的方法。
- 需要传入脚本对象实例、方法名以及方法参数。
- 适用于已经通过脚本创建的对象,并调用其特定方法。
Object scriptObject = engine.eval("new SomeClass()"); Object result = invocable.invokeMethod(scriptObject, "someMethod", arg1, arg2);
-
invokeFunction:
- 用于直接调用脚本中的全局函数。
- 只需要传入函数名以及函数参数。
- 适用于调用脚本中定义的全局函数。
Object result = invocable.invokeFunction("someFunction", arg1, arg2);
总结来说,invokeMethod
用于调用脚本对象上的方法,而 invokeFunction
用于调用脚本中的全局函数。