即使我尝试了 java outter$inner

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

我在内部类中执行主要方法时遇到困难。外部类的main方法执行得很好,甚至其他类的main方法也执行得很好。但是,当我尝试执行 java Outer$Inner 时,它会执行外部类而不是内部类的主要方法。

代码如下:

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

所有类文件都在同一目录中生成。 还有让我恼火的是这个 image 在内部类中没有运行或调试 main 方法的选项。

所以我想找出为什么会这样。

java inner-classes
1个回答
2
投票

我的程序有一个

Illegal static declaration in inner class Outer.Inner
错误。

我不得不把它改成:

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");
    }
  }
}

static
课。

然后,我可以运行 INNER 类:

PS D:\> java 'Outer$Inner'
INNER

注意引号。如果省略它们,Powershell 将运行

java Outer
$Inner
被替换为任何内容,因为变量未定义)。

常见的用法像这个例子一样用大写写类名。

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