继承受静态保护的内部类,javac错误投诉

继承受静态保护的内部类,javac错误投诉,java,generics,inheritance,javac,Java,Generics,Inheritance,Javac,考虑以下代码: Base.java package package1; public class Base<I extends Base.Inner>{ protected static class Inner{} } package package2; public class Derived extends Base<Derived.Inner>{ static class Inner extends Base.Inner{} } 我看代码中没

考虑以下代码:

Base.java

package package1;

public class Base<I extends Base.Inner>{
    protected static class Inner{}
}
package package2;

public class Derived extends Base<Derived.Inner>{
    static class Inner extends Base.Inner{}
}

我看代码中没有错误。请解释一下
JDK1.8.0(40

能够使用受保护的
内容(属性、内部类、方法)从
Base
内部
Derived
Derived
类应该与
Base
在同一个包中,或者应该扩展
Base
这在版本9中是固定的。

您的
Derived
类没有扩展
Base
类。很抱歉,派生声明应该是“公共类派生扩展基”很抱歉,输入错误。当然派生扩展基,请参阅固定代码。@SergeyS。这是一个很好的使用is a的机会,有一个问题。Base是一个基。Inner或Base有一个基。Inner?
public class Base{
您需要的零件look@HRgiger,我不明白你的意思,你能说清楚一点吗?
Derived.java:6: error: Inner has protected access in Base
   public static class Inner extends Base.Inner{}
                                         ^