我的导师说我们不能在内部类中写静态方法

问题描述 投票:0回答:1

这段代码运行得很好。为什么会这样呢?如果我们不能在内部类中声明静态方法,它应该会给出错误。

class Test{
    
    static int j=20;
    public void m1() {
        class Inner{
            public static void m2() {
                System.out.println(j);
            }
        }
        Inner inner = new Inner();
        inner.m2();
    }
    
    public static void main(String[] args) {
        Test obj = new Test();
        obj.m1();
    }
}
java jvm javac
1个回答
0
投票

假设您的导师不是最新的(?)Java 版本。

事实上,在 Java 16 之前,内部类中不可能有

static
方法,但在那个 Java 版本中,这是允许的。

请参阅为什么 Java 16 中的非静态内部类中允许使用静态方法?了解更多信息。

在我撰写本文时(2024 年 10 月 12 日),当前的 Java 版本是 Java 23。

© www.soinside.com 2019 - 2024. All rights reserved.