在 scala 中运行 nashorn
时,我无法将 Class
纳入 ScriptEngine
的范围。
这是我尝试做的事情:
import javax.script.{ScriptEngine, ScriptEngineManager}
case class MyClass(id: Option[String], name: Option[String])
val manager: ScriptEngineManager = new ScriptEngineManager
val engine: ScriptEngine = manager.getEngineByName("nashorn")
var simpleScript: String =
"""
var myClass = new MyClass('myId', 'myName'); print(myClass.id);
"""`
engine.eval(simpleScript)
有人知道如何从JavaScript
启动MyClass
吗?
我收到以下异常:
javax.script.ScriptException: ReferenceError: "MyClass" is not defined in <eval> at line number 1`
最佳答案
我认为它与尝试访问 java 类相同,值得一试
http://docs.oracle.com/javase/8/docs/technotes/guides/scripting/prog_guide/javascript.html#A1147187建议
var MyClass = Java.type("MyClass");
var inst = new MyClass("myId", "myName");
关于java - 如何将类放入 Scala 中 JJS ScriptEngine 的范围中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23543192/