如何通过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());
}
}
答案 0 :(得分:1)
您可以使用ScriptEngine.put方法[在评估脚本的其余部分之前]将Java代码中的“obj”变量公开为脚本的全局变量
engine.put("obj", obj);