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 が Angle ではなく double として返されているように見えます。box/unbox メソッドを追加しようとしましたが、引き続き同じエラーが発生します。繰り返しますが、どんな助けでも大歓迎です。