Предположим, что у меня есть следующий файл Java в библиотеке:
package test;
public abstract class AbstractFoo {
protected static class FooHelper {
public FooHelper() {}
}
}
Я хотел бы расширить его от Scala:
package test2
import test.AbstractFoo
class Foo extends AbstractFoo {
new AbstractFoo.FooHelper()
}
Я получаю ошибку, "к классу FooHelper нельзя получить доступ в объектном тесте. AbstractFoo". (Я использую Scala 2.8 ночью). Следующий Java компилирует правильно:
package test2;
import test.AbstractFoo;
public class Foo2 extends AbstractFoo {
{ new FooHelper(); }
}
Версия Scala также компилирует, если она помещается в test
пакет. Там другой путь состоит в том, чтобы заставить это компилировать?
Хм, я мог только что прочитать FAQ по совместимости с Java: