NoSuchMethodError void vs int

时间:2017-03-11 21:26:20

标签: java

我正在http://mooc.cs.helsinki.fi/上浏览在线Java课程,并偶然发现错误。无法找到解决方法。

public class NumberStatistics {

   private int count;
   private int sum;
   public NumberStatistics(){
       this.count=0;
       this.sum=0;
   }
   public void addNumber(int number){
       this.count++;
       this.sum+=number;
   }
   public int amountOfNumbers(){
       return this.count;
   }
   public int sum(){
       return this.sum;
   }
   public double average(){
       if(this.count==0||this.sum==0){
           return 0;
       }
       return (double)this.sum/this.count;
   }
}

这是主文件

public class Main {
    public static void main(String[] args) {

        NumberStatistics stats = new NumberStatistics();

        stats.addNumber(3);
        stats.addNumber(5);
        stats.addNumber(1);
        stats.addNumber(2);
        System.out.println("Amount: " + stats.amountOfNumbers());
        System.out.println("sum: " + stats.sum());
        System.out.println("average: " + stats.average());
    }
}

当我尝试运行它时,它会出现错误

Exception in thread "main" java.lang.NoSuchMethodError:  NumberStatistics.addNumber(I)I
at Main.main(Main.java:8)

如果我改变

public void addNumber 

public int addNumber

带有返回值。它经历了很好但是不被他们的服务器接受,因为这个方法必须具有特定的名称(void)。问题是什么?我输了。

P.S。我修了一下,现在看起来很有效。没有改变任何代码。不确定是什么导致它失败...去检查它。感谢您的投入。

1 个答案:

答案 0 :(得分:-1)

我刚刚在Java SE环境中使用了您的代码,我得到了这个:

金额:4 总和:11 平均:2.75

嗯,我没有看到任何问题,但你说你是否正在使用服务器?

此错误:

Exception in thread "main" java.lang.NoSuchMethodError:  NumberStatistics.addNumber(I)I

在Main.main(Main.java:8)

据我所知是因为你的课程没有这种方法,所以我谦虚地建议你使用你想要的空格再次编译课程并刷新服务器(重启)你应该看到改变,因为我说它在我的SE环境中运作良好