我正在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。我修了一下,现在看起来很有效。没有改变任何代码。不确定是什么导致它失败...去检查它。感谢您的投入。
答案 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环境中运作良好