我正在编写一个解析器生成器,用于创建Scala案例类。举个例子:
case class Foo(
name : String,
age : Int
)(implicit other:Int){}
当我想实现一个Foo实例时,我的解析器生成器知道所有3个成员,包括隐含的“其他”。我有数据填充名称&年龄。
使用Scala反射,如何在创建对象时为“其他”找到合适的值来检查“隐式环境”?
答案 0 :(得分:3)
你不能:可用的implicits取决于导入,局部变量等在运行时根本不可用的东西。如果您可以使用宏,则可以使用c.inferImplicitValue
方法。有关示例,请参阅Scala macro - Infer implicit value using `c.prefix`或https://groups.google.com/forum/#!topic/scala-language/rqNZMBuJLtE,但如果您需要有关此路线的帮助,我建议您另外提问。