How can i pass an object as parameter to another java method via nashorn.
(e.g)
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());
}
}
You can expose "obj" variable in Java code as a global variable for scripts using ScriptEngine.put method [ before evaluating rest of the script ]
engine.put("obj", obj);