scala - 在 Scala 中使用反射的奇怪行为

标签 scala reflection scala-2.10

我试图从另一个问题中举一个例子,但我发现了一些我无法解释的事情:

scala> import scala.reflect.runtime.{currentMirror => m}
import scala.reflect.runtime.{currentMirror=>m}

scala> m.mkToolBox()
<console>:12: error: value mkToolBox is not a member of reflect.runtime.universe.Mirror
              m.mkToolBox()
                ^

scala> import scala.tools.reflect.ToolBox
import scala.tools.reflect.ToolBox

scala> m.mkToolBox()
res3: scala.tools.reflect.ToolBox[reflect.runtime.universe.type] = scala.tools.reflect.ToolBoxFactory$ToolBoxImpl@225765b0

怎么来的mkToolBox不是 m 的成员导入前 ToolBox ,但之后呢?

最佳答案

ToolBox是皮条客的隐式类 mkToolBoxMirror .与 Eval 相同的故事, 皮条客 eval .

关于scala - 在 Scala 中使用反射的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11283204/

相关文章:

mongodb - 使用 Play-Reactivemongo 插件映射 MongoDB _id?

java - 使用反射方法进行字段间接

Objective-C 重新定义类

scala - 将隐式 ExecutionContext 传递给包含的对象/调用的方法

scala - 无形(scala)中的 "at"是什么?

scala - Scala 中的合并选项

scala - 如何使用 Play Framework (scala)在HTML中打印@符号

scala - Scala 2.10中如何实现惰性val类变量?

scala - 为什么 Scala 的 Option[T] 不直接转换为字节码中的 T?

java - 反射助手 Java 库