为什么编译scala代码后会生成两个类文件?

时间:2015-06-09 11:59:29

标签: scala

当我们使用

编译scala代码时
ROUND(CAST ( 1.155 AS float ),2)

创建了两个名为scalac code.scala code.class的文件。 第二个文件的目的是什么?

供参考,

code$.class

这是object HelloWorld { def main (args: Array[String]) { println ("Hello world! This is my first scala program!"); } } 文件中的代码。

2 个答案:

答案 0 :(得分:6)

这是Scala如何将Scala object转换为JVM结构的结果。使用普通方法,普通继承等将object X转换为类X$

由于object X在Scala中创建单例,因此能够通过将它们称为静态方法X.someMethod()来从Java访问其公共方法会很好。这就是为什么Scala编译器还创建了一个类X,其中静态方法调用类X$的单例实例的普通方法。即使您没有自己的Scala类X

答案 1 :(得分:0)

第二个文件用于伴侣对象,如果你有两个

class Code{}
object Code{}

在你的档案中