-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
清理你的項目.... –