我正在使用javap命令将以下Scala代码转换为Java。在输出中得到一些奇怪的东西。
scala>class Order(var id:Int)
scala> :javap -p Order
Compiled from "<console>"
public class $line19.$read$$iw$$iw$Order {
private int id;
public int id();
public void id_$eq(int);
public $line19.$read$$iw$$iw$Order(int);
}
scala>
在javap输出中获取$ line19,$符号。是预期之一吗? ?我需要做任何事情
答案 0 :(得分:0)
是的,这是可以预期的。
例如,Scala REPL允许您重新定义val
,这在Scala中是不允许的。实现此方法的方式是,您输入到REPL中的每一行都包装在一个对象中,以便每一行都位于单独的命名空间中。在反编译输出中看到的是由Scala REPL生成的对象。