0
我有一个特质在斯卡拉如下实例化对象与类名和参数
trait Ingredients
case class Water(temperature: Int, litters: Double) extends Ingredients
此外,我已经从一个文件读取一个字符串:
"Water(temperature=15, litters=50)"
我想知道可以通过仅传递字符串来实例化此类中的对象。
我有一个特质在斯卡拉如下实例化对象与类名和参数
trait Ingredients
case class Water(temperature: Int, litters: Double) extends Ingredients
此外,我已经从一个文件读取一个字符串:
"Water(temperature=15, litters=50)"
我想知道可以通过仅传递字符串来实例化此类中的对象。
Twitter的的Util评价仪会做到这一点:https://github.com/twitter/util
val eval = new Eval
val w = eval[Water]("Water(temperature=15, litters=50)")
的评估代码需要的Scala代码一个完整的单元。例如,如果Water
位于包中,那么该包需要以评估字符串的形式导入,否则需要在构造函数中使用完整的包引用。
您能举个例子吗?我无法找到哪个部分让我做我想做的事。 –
当我尝试所有我得到的是'编译器异常错误:第1行:找不到:值水' –
您可能已经在包中定义了'Water'。如果是这样的话,你需要在你的字符串'com.mypackage.Water(...)'中包括包名,否则在执行之前在这个字符串中添加一条import语句。该字符串需要完全解析和有效的Scala代码。 –