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

时间:2016-06-21 06:45:39

标签: java nashorn

如何通过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());
}
}

1 个答案:

答案 0 :(得分:1)

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

engine.put("obj", obj);