继承静态受保护的内部类,javac错误的抱怨

时间:2018-12-03 04:19:26

标签: java generics inheritance javac

考虑以下代码:

Base.java

 <form action="http://google.ca" method="post" target="_self">
  <div>
    <button>post</button>
  </div>
 </form>

Derived.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{}
}

我没有在代码中看到错误。请解释一下。 Derived.java:6: error: Inner has protected access in Base public static class Inner extends Base.Inner{} ^

2 个答案:

答案 0 :(得分:2)

要在protected Base类中使用Derived中的Derived东西(属性,内部类,方法),应该与{{ 1}}或应扩展Base

答案 1 :(得分:1)

此问题在版本9中得到了a javac bug的修复。