如何通过Scala反射获得implicits?

时间:2016-06-07 15:38:41

标签: scala reflection

我正在编写一个解析器生成器,用于创建Scala案例类。举个例子:

case class Foo(
   name : String,
   age : Int
)(implicit other:Int){}

当我想实现一个Foo实例时,我的解析器生成器知道所有3个成员,包括隐含的“其他”。我有数据填充名称&年龄。

使用Scala反射,如何在创建对象时为“其他”找到合适的值来检查“隐式环境”?

1 个答案:

答案 0 :(得分:3)

你不能:可用的implicits取决于导入,局部变量等在运行时根本不可用的东西。如果您可以使用宏,则可以使用c.inferImplicitValue方法。有关示例,请参阅Scala macro - Infer implicit value using `c.prefix`https://groups.google.com/forum/#!topic/scala-language/rqNZMBuJLtE,但如果您需要有关此路线的帮助,我建议您另外提问。