Twitter util库为如何在运行时评估Scala代码提供了一个很好的实用工具,例如:
val eval = new com.twitter.util.Eval()
val example = eval.apply("""
case class E() {
def one(): Int = 1
}
(new E).one()
""").asInstanceOf[Int]
// example: Int = 1
但是有可能评估不返回任何内容的代码(返回状态为true / false - 编译/失败),然后开始使用在评估部分中定义的类,例如:
val eval = new com.twitter.util.Eval()
eval.{_MAGIC_METHOD_}("""
case class E() {
def one(): Int = 1
}
""")
val one = (new E).one(); // and this one will be -> one: Int = 1
所以我对{_MAGIC_METHOD_}部分感到好奇,有可能用某个库来做这个吗? Twitter utils可以吗?其他一些util库? Scala编译器(Scala编译器 - http://mvnrepository.com/artifact/org.scala-lang/scala-compiler)?
提前感谢您的帮助和任何建议。