【发布时间】:2011-04-16 15:25:30
【问题描述】:
根据 Scala 邮件列表,不同的人经常说:“编译器将这个 [scala] 代码重写为这个 [java/scala??] 代码”。例如,从最新的线程之一,如果 Scala 看到
class C(i: Int = 4) { ... }
然后编译器将其重写为(有效地):
class C(i: Int) { ... }
object C {
def init$default$1: Int = 4
}
我怎样才能知道我的代码的编译器输出是什么?我应该为此反编译生成的字节码吗?
【问题讨论】:
-
Scala 编译器不会将代码重写为 Java 代码,而是将 Scala 代码编译为 Java 字节码,这是不同的。例如,也许您可以“逆向工程”这个字节码(使用 Jad),以获取 Java 源代码。
-
我知道 scala 编译器 [在某些情况下] 会重写原始代码。我现在已经更正了我原来的问题。
标签: java scala compiler-construction bytecode