我有以下代码,我想即时编译并运行它。
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello, world!")
}
}
到目前为止,我已经尝试过如下方法:
import scala.reflect.runtime.currentMirror
import scala.tools.reflect.ToolBox
object MainScala {
def main(args: Array[String]): Unit = {
val toolbox = currentMirror.mkToolBox()
val source =
"""
|object HelloWorld {
| def main(args: Array[String]): Unit = {
| println("Hello, world!")
| }
|}
|""".stripMargin
val tree = toolbox.parse(source)
val binary = toolbox.compile(tree)
var c = binary.getClass
val m = c.getMethod("main", classOf[Array[String]])
val params = Array("Apple", "Banana", "Orange")
m.invoke(null, null)
}
}
在toolbox.compile(tree)
我无法获得Class
编译代码的对象之后。