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(); }
}

testパッケージに配置されている場合、Scala バージョンもコンパイルされます。コンパイルする別の方法はありますか?

4

1 に答える 1

10

うーん、Java 相互運用性に関する FAQ を読むことができました。

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

于 2010-05-08T13:41:00.477 に答える