Scala/Java互操作的静态嵌套类可见性问题

Mat*_*t R 8 java interop visibility scala nested-class

假设我在库中有以下Java文件:

package test;
public abstract class AbstractFoo {
   protected static class FooHelper {
      public FooHelper() {}
   }
}
Run Code Online (Sandbox Code Playgroud)

我想从Scala扩展它:

package test2
import test.AbstractFoo
class Foo extends AbstractFoo {
  new AbstractFoo.FooHelper()
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,"无法在对象test.AbstractFoo中访问类FooHelper".(我每晚都使用Scala 2.8).以下Java正确编译:

package test2;
import test.AbstractFoo;
public class Foo2 extends AbstractFoo {
    { new FooHelper(); }
}
Run Code Online (Sandbox Code Playgroud)

如果Scala版本放在test包中,它也会编译.还有另一种方法可以让它编译吗?

Mat*_*t R 10

嗯,我可以阅读Java互操作性常见问题解答:

http://www.scala-lang.org/faq/4#4n1381