Какова цель этих файлов Java в scala.runtime? - PullRequest
10 голосов
/ 12 сентября 2011

В исходном дереве Scala есть несколько * .java-файлов в каталоге scala.runtime .

Эти файлы выглядят очень простыми, например, DoubleRef.java выглядитthis:

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?

1 Ответ

5 голосов
/ 12 сентября 2011

Также предположение: нет никакой конструкции Scala, которая компилируется в публичное поле - публичные var s компилируются в приватное поле и в публичный метод доступа и мутатор. Поскольку я предполагаю, что эти *Ref классы широко используются, это может быть оптимизацией, чтобы избежать частых вызовов методов и заменить их прямым доступом к полю.

...