2016-06-21 5 views
0

Как передать объект в качестве параметра другому java-методу через nashorn.Nashorn передать объект java другому 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

Вы можете выставить "OBJ" переменная в Java коде в качестве глобальной переменной для скриптов с использованием метода ScriptEngine.put [перед вычислением остальной части сценария]

engine.put("obj", obj); 
Смежные вопросы