Invocableクラスを使用して、クラスのメソッドを呼び出すことができることはわかっています。
import javax.script.{ScriptEngine, ScriptEngineManager, Invocable}
val engine = new ScriptEngineManager().getEngineByExtension("js")
val invoker = engine.asInstanceOf[Invocable]
val person = engine.eval(s"""
new function () {
this.name = "Rick";
this.age = 28;
this.speak = function () {
return this.name + "-" + this.age;
}
};
""")
invoker.invokeMethod(person, "speak") //returns "Rick-28"
しかし、どうすればname
人の属性を取得できますか?私は試し invoker.invokeMethod(person, "name")
てみましたNoSuchMethodError
。