Eclipse IDE を使用している場合、Java コードから Scala クラスを参照できません。問題の Scala クラスは、Scala オブジェクト構造内にネストされています。Java コードでクラスを使用しようとすると、Eclipse はバイナリー名の使用について不平を言います。
Inner
以下は、目的のクラス ( )を定義する Scala コードの例です。
package mypackage;
object Outer {
object Middle {
class Inner {
def msg() {
println("Running");
}
}
}
}
Java コードでクラスを使用するInner
には、次のコードを使用します。
mypackage.Outer$Middle$Inner inner = new mypackage.Outer$Middle$Inner();
inner.msg();
ただし、Eclipse (Indigo) コンパイラは、最初の行に次のメッセージを表示します。
ネストされたタイプ mypackage.Outer$Middle$Inner は、バイナリ名を使用して参照できません
興味深いことに、上記の Java コードは、NetBeans 6.9.1 で使用すると機能します。
これは Eclipse コンパイラの問題ですか? バイナリ名の使用を許可するフラグはありますか? あるいは、これは Scala の問題なのか、それとも私の使用方法の問題なのか?