0

我在第一组代码中有两组代码,我定义了自定义 String 类并尝试创建它的实例,而第二组我定义了自定义 System 类并尝试创建它的实例。

这既不是面试问题也不是作业,我只是在检查后尝试

在这个我试图创建我已经定义的 String 类的实例,我得到了Exception in thread "main" java.lang.NoSuchMethodError: main

public class Test {
    public static void main(String[] args) throws Exception {
        String s = new String();
        java.lang.System.out.println("done");
    }
}

class String {
    public String() {
        java.lang.System.out.println("custom String");
    }
}

在这一部分中,我正在尝试创建我已定义的 System 类的实例,它运行良好

public class Test {
    public static void main(String[] args) throws Exception {
        System s = new System();
        java.lang.System.out.println("done");
    }
}
class System {
    public System(){
        java.lang.System.out.println("custom System");
    }
}

String 和 System 类都是 final 的,那么为什么会有不同的行为呢?

4

1 回答 1

2

发生这种情况是因为您main使用自定义类作为参数类型,该类型与接受作为参数的标准方法(入口点)String不匹配;因此抱怨。mainjava.lang.String[]

main将您的使用java.lang.String类更改为:

       public static void main(java.lang.String[] args)
于 2012-11-29T05:39:36.543 回答