Scala入门示例反编译分析代码执行流程
2023-09-14 09:02:03 时间
javap一下,看反编译结果:
package com.zxl.java.chapter01;
//分析
// 1. object在底层会生成两个类Hello , Hello$
// 2. Hello中有个main函数,调用Hello$类的一个静态对象MODULES$
// 3. Hello$.MODULE$.对象是静态的,通过该对象调用Hello$的 main函数
// 4. 可以理解我们在main中写的代码在放在Hello$的main,在底层执行时scala编译器做了一个包装
public class HelloWorld {
public static void main(String[] args) {
Hello2$.MODULE$.main(args);
}
}
final class Hello2$ {
public static final Hello2$ MODULE$;
static {
MODULE$ = new Hello2$();
}
public void main(String[] args) {
System.out.println("hello world");
}
}