json4s JValue scala classTag 工作错误
json4s JValue scala classTag works wrong
在我的代码中,我使用 classTag[JValue]
想要得到 org.json4s.JsonAST.JValue ,
但实际上它 returns org.json4s.JsonAST$JValue, 很奇怪!为什么会有$?
我是使用 scala 的新手,有人可以回答我吗?非常感谢
您用来指代 class/method/etc 的名称。在您的代码中,它在编译器生成的字节码中的名称不必相同。与 Java 编译器相比,Scala 编译器需要更多地进行名称修改,但这种特定情况对于两者都是相同的。
原因是 JVM 上并不真正存在内部 classes:它们是普通的 classes,有一个包含外部实例的附加字段。 class 的 JVM 名称类似于 <outer_class>$<inner_class>
.
在 Scala 和 Java 中,名称中的 $
通常表示它在某种程度上被破坏了(尽管它 是 程序员可以使用的合法字符以及)。
在我的代码中,我使用 classTag[JValue]
想要得到 org.json4s.JsonAST.JValue ,
但实际上它 returns org.json4s.JsonAST$JValue, 很奇怪!为什么会有$?
我是使用 scala 的新手,有人可以回答我吗?非常感谢
您用来指代 class/method/etc 的名称。在您的代码中,它在编译器生成的字节码中的名称不必相同。与 Java 编译器相比,Scala 编译器需要更多地进行名称修改,但这种特定情况对于两者都是相同的。
原因是 JVM 上并不真正存在内部 classes:它们是普通的 classes,有一个包含外部实例的附加字段。 class 的 JVM 名称类似于 <outer_class>$<inner_class>
.
在 Scala 和 Java 中,名称中的 $
通常表示它在某种程度上被破坏了(尽管它 是 程序员可以使用的合法字符以及)。