ScriptEngineManager не передает связанные переменные?
Я пытался связать переменную, но движок javascript говорит, что в моем java-объекте нет метода getRow(), поэтому я не понимаю, почему этот код не работает
context.getRow() в javascript является проблемой.
public static void main(String[] args) throws ScriptException, NoSuchMethodException {
Map<String, String> jsonRow = new HashMap<String, String>();
jsonRow.put("temp", "56");
TriggerContext ctx = new TriggerContext(jsonRow , null);
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
engine.put("context", ctx);
//Object result = compiledScript.eval();
engine.eval("function trigger() { var t = context.getRow(); var val = t['temp']; if(val > 55) return false; else return true; }");
Invocable inv = (Invocable) engine;
// invoke the global function named "hello"
Object result = inv.invokeFunction("trigger" );
System.out.println("result="+result);
System.out.println("type="+result.getClass());
}