Ich gehe durch Online-Java-Kurs auf http://mooc.cs.helsinki.fi/ und stieß auf einen Fehler. Kann mich nicht zurechtfinden.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;
}
}
Und das ist die Hauptdatei
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());
}
}
Wenn ich versuche, es zu laufen, kommt es mit einem Fehler
Exception in thread "main" java.lang.NoSuchMethodError: NumberStatistics.addNumber(I)I
at Main.main(Main.java:8)
Wenn ich
public void addNumber
ändern
public int addNumber
mit Rückgabewert. Es geht gut durch, wird aber von ihrem Server nicht akzeptiert, da diese Methode einen spezifischen Namen (void) haben muss. Was ist das Problem? Ich bin verloren.
P.S. Ich habe ein bisschen gebastelt und es scheint jetzt zu funktionieren. Habe keinen Code geändert. Ich bin mir nicht sicher, was das scheitern ließ ... Ich werde es untersuchen. Danke für deinen Beitrag.
Du kompilierst deine 'Main' Klasse nicht neu . Wenn Sie ein IDE- oder Build-Tool verwenden, wird sichergestellt, dass alles, was kompiliert werden muss, neu kompiliert wird. –
Ich benutze NetBeans 8.2 – Aleks
reinigen Sie Ihr Projekt .... –