Я не могу ссылаться на классы Scala из кода Java при использовании Eclipse IDE. Рассматриваемый класс Scala вложен в структуру Scala-объекта. При попытке использовать класс в Java-коде Eclipse жалуется на использование двоичного имени.Scala объектно-вложенные классы в Eclipse 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 $ Средний $ Inner нельзя ссылаться, используя его имя бинарного
Интересно, что код Java выше, работает при использовании NetBeans 6.9.1.
Это проблема с компилятором Eclipse? Существуют ли флаги, позволяющие использовать двоичные имена? Или, альтернативно, это проблема с Scala или тем, как я ее использую?
Так же, что Netbeans удалось запустить код только как удачное исключение на их стороне? –
Я был бы очень удивлен, если это произойдет. Каков синтаксис, который работает в Netbeans? –
Точно синтаксис, как описано в вопросе. Я создаю банку Scala и использую ее в проекте Java NetBeans. Я добавил исполняемый пример в GitHub: http://github.com/andriusvelykis/scala-nested-class-netbeans –