8

假设我在库中有以下 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()
}

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

package test2;
import test.AbstractFoo;
public class Foo2 extends AbstractFoo {
    { new FooHelper(); }
}

如果将 Scala 版本放在test包中,它也会编译。还有其他方法可以编译吗?

4

1 回答 1

10

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

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

于 2010-05-08T13:41:00.477 回答