java - 如何将类放入 Scala 中 JJS ScriptEngine 的范围中

标签 java scala nashorn

在 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/

相关文章:

java - InnoSetup : Detect if Java is 32-bit or 64-bit

Java fasterxml.jackson 反序列化 LocalDateTime wrongTokenException

list - 列表的 Scala 列表计算每个子列表索引的不同元素

Java Nashorn - 模板字符串

javascript - 使用 JSR223 调用重载静态方法时出现异常

javascript - 四舍五入后无法从 Nashorn 引擎接收非小数位数字

java - 如何在给定的不活动时间后隐藏 View

java - 将java程序变成独立的应用程序

scala - IntelliJ + SBT 插件 + 多项目设置 = Unresolved 依赖关系?

Scala 类型别名,包括伴随对象 [初学者]