静态内部类问题

Static Inner Class Issue

提问人:Anonymous_1354 提问时间:11/14/2023 更新时间:11/14/2023 访问量:48

问:

我遇到了静态内部类的问题

所以,我的程序是

 class Outer {
      static class Inner {
           static void test() {
              System.out.println("This is Inner Method");
           }
      }
 }
   public class Main {

        public static void main(String[] args) {
             Outer.Inner.test();
        }

   }

这应该访问测试方法并打印 This is Inner Method

这是在线程“main”中抛出异常 java.lang.NoSuchMethodError: 'void Outer$Inner.test()' 在Main.main(Main.java:11)

但是当我使用 javac Main.javajava Main 运行相同的程序时。它运行完美,提供适当的输出。

为什么我在尝试直接运行它时遇到此异常。

PS:我使用VS code作为IDE

Java 异常 静态 内部类

评论

1赞 Jim Garrison 11/14/2023
没有静态的内部类这样的东西。关键字使内部类独立于封闭类,与顶级类相同。static
0赞 Anonymous_1354 11/14/2023
感谢您的回复。删除静态关键字后尝试。仍然相同的输出
0赞 dan1st 11/14/2023
您在 VSC 中使用哪个插件来支持 Java?
1赞 Reilas 11/14/2023
@JimGarrison,“静态嵌套类
1赞 Slaw 11/14/2023
为了澄清 Jim 的评论:这是一个术语问题。“内部类”具体来说是一个非静态嵌套类。说你的类是“静态的内部类”是自相矛盾的。您的类是“静态嵌套类”,而不是内部类。但是,该评论不太可能帮助您解决错误;这只是对术语的更正。请注意,内部类需要封闭类的实例才能使用它。静态嵌套类则不然,因此你可以这样做(这不涉及 的实例)。Outer.Inner.test()Outer

答: 暂无答案