在内部类内执行 main 方法

2022-09-03 09:44:43

如何执行main方法,如果它存在于静态内部类中?
Main 方法存在于静态内部类中,我们需要执行该 main 方法。

class A {
     static class B {
          public static void main(String[] args) {
             System.out.println("Done");
          }
     }
}

答案 1

试试下面这样:

  java A$B

根据评论进行更新:

在 linux shell 中,你应该转义 $。因此,该命令变为:

java 'A$B'


答案 2

它就像简单的类。Run 命令 编译内部类时,会附加外部类名 在本例中为两个类文件。即. 和java A$BA.classA$B.class

  • java命令将类名作为参数,而不是文件名
  • 所以简单的命令就可以完成工作java A$B
  • 如果你有匿名类,那么类名将类似于 ,依此类推。OuterClass$1OuterClass$1

因此,如果您按如下方式修改示例,现在包括匿名和方法本地内部类

import java.io.Serializable;

public class A {
    static class B {
        public static void main(String[] args) {
            System.out.println("Done");
            Serializable obj = new Serializable() {
            };
            Serializable obj1 = new Serializable() {
            };
            class MethodLocalClass {
            }                                           
        }
    }
}

然后,您将获得的类文件是 、 、 、 (对于匿名类) 和 。A.classA$B.classA$B$1.classA$B$2.classA$B$1MethodLocalClass.class

希望这个例子能:)


推荐