静态内部类可以扩展其外部类吗?

Pau*_*aet 9 java intellij-idea

public class Outer {

    public static class Inner extends Outer {

    }
}
Run Code Online (Sandbox Code Playgroud)

它似乎可以用我的openjdk8编译器进行编译,但是IntelliJ 2019.1抱怨: 无法访问外部

我认为这可能是IntelliJ错误。

编辑:我确认这是一个IntelliJ错误。我通过将IntelliJ与捆绑的OpenJDK 11一起安装来解决此问题。

小智 3

这适用于 OpenJDK 11:

public class Outer {
    public static void main(String[] args) {
        Inner inner = new Inner();
        inner.foo();
    }

    void foo() {
        System.out.println("foo from Outer");
    }

    public static class Inner extends Outer {
        @Override
        void foo() {
            System.out.println("foo from Inner");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

foo from Inner
Run Code Online (Sandbox Code Playgroud)

  • 我可以编译它,但 IntelliJ 仍然抱怨,所以我认为这是一个 IntelliJ bug。 (4认同)