4
使用Eclipse IDE時,我無法從Java代碼中引用Scala類。有問題的Scala類嵌套在Scala對象結構中。當試圖在Java代碼中使用該類時,Eclipse會抱怨使用該二進制名稱。Eclipse中的Scala對象嵌套類Java
下面是Scala代碼定義的類利息(Inner
)的例子:
package mypackage;
object Outer {
object Middle {
class Inner {
def msg() {
println("Running");
}
}
}
}
使用類Inner
在Java代碼中,我使用下面的代碼:
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的問題還是我使用它的方式?
因此,Netbeans成功運行代碼只是一個幸運的例外而已? – 2012-04-21 19:13:19
如果確實如此,我會很驚訝。 Netbeans中的語法是什麼? – 2012-05-03 08:10:49
問題中所描述的語法正確。我構建了一個Scala jar並在NetBeans Java項目中使用它。我已經爲GitHub添加了一個可執行的示例:http://github.com/andriusvelykis/scala-nested-class-netbeans – 2012-05-08 11:39:49