1. object 在底层会生成两个类 TestScala , TestScala$
2. TestScala 中有个 main 函数,调用 TestScala$ 类的一个静态对象 MODULES$
object TestScala {
def main(args: Array[String]): Unit = {
println("hello,scala...")
}
}
用java代码模拟:
//我们可以理解scala 在运行时,做了一个包装.
public class TestScala {
public static void main(String[] paramArrayOfString) {
TestScala$.MODULE$.main(paramArrayOfString);
}
}
final class TestScala$
{
public static final TestScala$ MODULE$;
static
{
MODULE$ = new TestScala$();
}
public void main(String[] args)
{
System.out.println("hello,scala...");
}
}