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