Scala在运行时从字符串创建方法并调用它

时间:2018-05-08 13:50:07

标签: scala reflection

有没有什么办法可以在字符串中创建一个scala方法,然后再调用它?例如

val code = "(a: String, b:String) => {a+b}"

我想知道是否有任何方法可以实例化该方法并调用它?

我已经探索过toolbox和twitter util eval,它们都需要我编译和实例化方法 asInstanceOf[(String, String) => Option[Any]]

要做到这一点,我需要知道参数及其类型,我正在寻找方法,我不需要事先了解参数类型。

1 个答案:

答案 0 :(得分:0)

看看twitter util eval api

import com.twitter.util.Eval 
val func = new Eval().apply[(String, String)=>String]("(a: String, b:String) => a+b")



scala> func("ab", "cd")
res1: String = abcd