首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Scala的object语法里的代码生成到哪里了

2012-12-22 
Scala的object语法里的代码生成到哪里了?刚收到一个问题,object A {println(hello)}里面的 println(hel

Scala的object语法里的代码生成到哪里了?
刚收到一个问题,
object A { println("hello")}
里面的 println("hello") 在java中是怎么表达的呢?

有这么具体的代码例子的话,最简单的回答办法就是把Scala代码编译到Class文件然后再拿Java的反编译工具来打开

我测试用的代码:

object X {  println("hello")}

生成了两个类,X与X$。下面分别是它们反编译出来的样子:
import scala.reflect.ScalaSignature;@ScalaSignature(bytes="\006\001m9Q!\001\002\t\006\025\t\021\001\027\006\002\007\0059A(Z7qift4\001\001\t\003\r\035i\021A\001\004\t\021\t!\t\021!E\003\023\t\t\001lE\002\b\025I\001"a\003\t\016\0031Q!!\004\b\002\t1\fgn\032\006\002\037\005!!.\031<b\023\t\tBB\001\004PE*,7\r\036\t\003'Yi\021\001\006\006\002+\005)1oY1mC&\021q\003\006\002\f'\016\fG.Y(cU\026\034G\017C\003\032\017\021\005!$\001\004=S:LGO\020\013\002\013\001")public final class X {}

import scala.Predef$;import scala.ScalaObject;public final class X$    implements ScalaObject {  public static final X$ MODULE$;  static {    new X$();  }  private X$() {    MODULE$ = this;    Predef$.MODULE$.println("hello");  }}


所以结果要说是在Java的static块里也不算很错…
哦对了我这里用的是Scala 2.8 RC1。一直懒还没把工作机更新到2.8 final。

热点排行