在Java中,为什么我们不能使用名为String的内部类,如果父类具有psvm

时间:2016-04-16 16:42:47

标签: java

public class OuterClass {
    public static void main(String[] args) {
        System.out.println("Hello !");
    }

    private class String {
      int i = 10;
    }
}

以上代码编译正确

当我尝试运行上面的代码时,它将错误抛出为“错误:在课程中找不到主要方法,请将主要方法定义为:    public static void main(String [] args)“。出现这种运行时执行的原因是什么?

1 个答案:

答案 0 :(得分:7)

因为您的内部类具有比java.lang.String更高的可见性;因此您更改了main签名。更改您的main

public static void main(java.lang.String[] args) {
    System.out.println("Hello !");
}

或重命名您的班级String