在scala中運行nashorn
時,我無法獲得Class
進入ScriptEngine
的範圍。如何在Scala中將類放入JJS 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`
會發生什麼如果你嘗試和完全限定你的自定義類(與包)在JavaScript中實例化它?另外,您的自定義類在其構造函數中使用了「Option」值,但在JavaScript中只傳遞了字符串。 – cmbaxter
將'Option'改爲'String'沒有什麼區別。 如果它位於根目錄下,那麼將使用什麼默認包? – jonbros