2

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实用程序可以吗?其他一些实用程序库?Scala 编译器(Scala 编译器 - http://mvnrepository.com/artifact/org.scala-lang/scala-compiler)?

提前感谢您的帮助和任何建议。

4

0 回答 0