Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';scala.runtime中这些Java文件的用途是什么?_Java_Scala_Programming Languages_Reference_Runtime - Fatal编程技术网

什么';scala.runtime中这些Java文件的用途是什么?

什么';scala.runtime中这些Java文件的用途是什么?,java,scala,programming-languages,reference,runtime,Java,Scala,Programming Languages,Reference,Runtime,目录中Scala的源代码树中有几个*.java文件 这些文件似乎很简单,例如。gDoubleRef.java如下所示: package scala.runtime; public class DoubleRef implements java.io.Serializable { private static final long serialVersionUID = 8304402127373655534L; public double elem; public Do

目录中Scala的源代码树中有几个*.java文件

这些文件似乎很简单,例如。g
DoubleRef.java
如下所示:

package scala.runtime;

public class DoubleRef implements java.io.Serializable {
    private static final long serialVersionUID = 8304402127373655534L;

    public double elem;
    public DoubleRef(double elem) { this.elem = elem; }
    public String toString() { return java.lang.Double.toString(elem); }
}

有什么原因不能在Scala中定义这些类吗?

也只是一个猜测:Scala中没有编译到公共字段的Scala构造—公共
var
s在Scala中编译到私有字段和公共访问器和变异器。正如我想象的那样,这些
*Ref
类被广泛使用,这可能是一种优化,以避免频繁的方法调用,并用直接字段访问取代它们。

只是一个猜测。没有Scala构造会编译为私有静态字段,这可能是java.io.Serializable正确工作所必需的?@Brian:您可以使用
@SerialVersionUID
注释。这听起来很有道理,但是声明那些方法
final
会不会通过让Java优化它们而获得同样的效果呢?我不知道-也许这个想法是不需要任何人(编译器或JVM)在这里进行任何优化。。。