奇怪的例外,JDK 6.0.29错误?

时间:2012-02-27 23:28:43

标签: java exception

正在试验接口继承并发现了这个:

interface String{}
interface Object{}
interface Exception{}
interface Integer extends String, Object, Exception{}

public class Test implements Integer{
    public static void main(String[] args) {
        System.out.println("Test");
    }
}

它正在编译,但在运行时抛出"main" java.lang.NoSuchMethodError: main

2 个答案:

答案 0 :(得分:7)

那是因为主方法签名应该是:

 public static void main(java.lang.String[] args) {

如果你写

 public static void main(String[] args) {

它获取了一个String接口数组,因此签名是不同的

答案 1 :(得分:3)

如果您推荐不可取的String界面,Test课程会尝试扩展java.lang.String,这是最后一堂课。你无法扩展它。并且要求像Integer这样的接口扩展而不是另一个接口应该会产生编译错误。

我认为这个实验没有任何教育意义。它们都不应该进入真正的代码。