przy użyciu Scala 2.10.1 Typy wartości w Javie

Aktualizuję mój projekt 2.9. * Do 2.10. Mam kilka klas dla podstawowych typów (kąty, długości itp.), Które wydają się być idealnymi kandydatami na typy wartości. Niestety, mój kod Java, który używa tych typów, nie jest kompilowany i nie mogę zrozumieć dlaczego. Uprościłem go do bardzo prostego zestawu kodu. Wszelkie sugestie byłyby bardzo mile widziane.

Definicja klasy kąta (scala)

package com.example.units

class Angle(val radians : Double) extends AnyVal
{
  def degrees = radians * 180.0 / math.Pi
}

object Angle
{
  val Zero = new Angle(0)
}

Przypadek testowy kąta (boleśnie napisany w Javie)

package com.example.units;

import junit.framework.Assert;
import org.junit.Test;

public class AngleTest
{
    @Test
    public static void TestZero()
    {
        Angle a = Angle.Zero();
        Assert.assertEquals(a.degrees(), 0, 1E-9);

    }

}

Podczas kompilacji pojawia się ten błąd:

AngleTest.java:19 incompatible types
found :double
required: com.example.units.Angle
Angle a = Angle.Zero();

            ^

Wygląda na to, że Angle.Zero jest zwracany jako podwójny, a nie kąt. Próbowałem dodać metody box / unbox, ale nadal otrzymuję ten sam błąd. Ponownie, każda pomoc byłaby bardzo mile widziana.

questionAnswers(1)

yourAnswerToTheQuestion