используя Scala 2.10.1 типы значений в Java

Я обновляю свой проект 2.9. * До 2.10. У меня есть несколько классов для фундаментальных типов (углы, длины и т. Д.), Которые кажутся идеальными кандидатами для типов значений. К сожалению, мой Java-код, использующий эти типы, не компилируется, и я могуне понимаю, почему. Я упростил его до очень простого набора кода. Любые предложения будут высоко ценится.

Определение класса угла (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)
}

Угловой тестовый кейс (мучительно написанный на Java)

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);

    }

}

Когда я компилирую, я получаю эту ошибку:

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

            ^

Мне кажется, что Angle.Zero возвращается как двойной, а не угол. Я пытался добавить методы box / unbox, но продолжаю получать ту же ошибку. Опять же, любая помощь будет принята с благодарностью.

Ответы на вопрос(1)

Ваш ответ на вопрос