你好,我在内部类中执行main方法时遇到了困难。外部类main方法执行得很好,即使其他类main方法也执行得很好。但是当我试图执行java外部$内部时,它执行的是外部类的main方法,而不是内部类。以下是代码:
class outer{
public static void main(String[] args) {
System.out.println("Outer class");
}
class inner{
public static void main(String[] args) {
System.out.println("Inner class");
}
}
}
class c{
public static void main(String[] args) {
System.out.println("Another class");
}
}
Output:
PS C:\Users\MY_PROJECTS> java outer
Outer class
PS C:\Users\MY_PROJECTS> java outer$inner
Outer class
PS C:\Users\MY_PROJECTS> java c
Another class
所有类文件都在同一个目录中生成。同样让我恼火的是这个图像,没有在内部类中运行或调试main方法的选项。
所以我想知道为什么会这样。
我有一个非法的静态声明在内部类Outer。内部
错误与您的程序。
我不得不把它改成:
class Outer{
public static void main(String[] args) {
System.out.println("OUTER");
}
static class Inner{
public static void main(String[] args) {
System.out.println("INNER");
}
}
}
请参阅静态
类。
然后,我可以运行INNER类:
PS D:\> java 'Outer$Inner'
INNER
注意引号。如果省略它们,Powershell将运行java外部
并使用$内部
做其他事情(我不太了解Powershell)。
常见用法使用大写写类名,如本例所示。