utilizando Scala 2.10.1 tipos de valor en Java
Estoy actualizando mi proyecto 2.9. * A 2.10. Tengo varias clases para tipos fundamentales (ángulos, longitudes, etc.) que parecen ser candidatos perfectos para tipos de valor. Desafortunadamente, mi código Java que utiliza estos tipos no se está compilando, y no puedo entender por qué. Lo he simplificado a un conjunto de código muy simple. Cualquier sugerencia sería muy apreciada.
Definición de la clase de ángulo (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)
}
Caso de prueba de ángulo (dolorosamente escrito en 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);
}
}
Cuando compilo, me sale este error:
AngleTest.java:19 incompatible types
found :double
required: com.example.units.Angle
Angle a = Angle.Zero();
^
Me parece que Angle.Zero se devuelve como un doble, no como un Angle. Intenté agregar métodos box / unbox, pero continúo recibiendo el mismo error. Una vez más, cualquier ayuda sería muy apreciada.