2010-05-08 49 views
8

假設我有一個庫下面的Java文件:Static Nested Class和可視性問題使用Scala/Java的互操作

package test; 
public abstract class AbstractFoo { 
    protected static class FooHelper { 
     public FooHelper() {} 
    } 
} 

我想從斯卡拉擴展:

package test2 
import test.AbstractFoo 
class Foo extends AbstractFoo { 
    new AbstractFoo.FooHelper() 
} 

我得到一個錯誤,「在對象test.AbstractFoo中無法訪問類FooHelper」。 (我每晚使用Scala 2.8)。下面的Java編譯正確:如果它放在test

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

斯卡拉版本也編譯。有沒有另一種方法讓它編譯?

回答