如果 main 方法存在于静态内部类中,如何执行它?
Main 方法存在于静态内部类中,我们需要执行该 main 方法。
class A {
static class B {
public static void main(String[] args) {
System.out.println("Done");
}
}
}
如果 main 方法存在于静态内部类中,如何执行它?
Main 方法存在于静态内部类中,我们需要执行该 main 方法。
class A {
static class B {
public static void main(String[] args) {
System.out.println("Done");
}
}
}
尝试这样的事情:
java A$B
根据评论更新:
在 linux shell 中,你应该转义 $. 所以命令变成了:
java 'A$B'
它就像简单的类。运行命令java A$B
当编译内部类时,它会附加外部类名。在这种情况下,你是两个类文件。IE 。A.class
和A$B.class
java
命令将类名作为参数,而不是文件名java A$B
就可以完成工作OuterClass$1
,OuterClass$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.class
, A$B.class
, A$B$1.class
,A$B$2.class
用于匿名类和A$B$1MethodLocalClass.class
.
希望这个例子有点帮助:)
如果你的.java
文件有内部/嵌套类,编译后那些由编译器生成为TheClass$xxx.class文件。
看到这个:
内部类定义产生额外的类文件。这些类文件的名称结合了内部和外部类名称,例如 MyClass$MyInnerClass.class。
所以你应该这样做:java A$B
。