-2
我正在通过在线Java课程http://mooc.cs.helsinki.fi/,并偶然发现错误。找不到我的方式。NoSuchMethodError void vs int
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.我已经修好了一点,现在看来工作。没有改变任何代码。不知道是什么导致它失败......去检查它。感谢您的输入。
你不重新编译你的Main类。如果您使用IDE或构建工具,它将确保需要编译的所有内容都将重新编译。 –
我使用NetBeans 8.2 – Aleks
清理你的项目.... –