Nashorn 将 java 对象传递给另一个 java 方法

Nashorn pass a java object to another java method

如何通过 nashorn 将对象作为参数传递给另一个 java 方法。

(例如)

Class DummyClass{
  void method1(TestClass c){
    Sout("In DummyClass method1");
   }
}

Class B{
  void method(){
    TestClass obj = new TestClass();
    StringBuilder buffer = new StringBuilder();
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("nashorn");
    String className = DummyClass.class.getCanonicalName();
    buffer.append("var JavaClass  = Java.type(\"" + className + "\");");
    buffer.append("JavaClass.method1(//HOW can i pass the obj here);");
    engine.eval(buffer.toString());
}
}

您可以在 Java 代码中将 "obj" 变量公开为使用 ScriptEngine.put 方法的脚本的全局变量 [在评估脚本的其余部分之前]

engine.put("obj", obj);