2017-03-11 5 views
-2

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.

+2

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. –

+0

Ich benutze NetBeans 8.2 – Aleks

+2

reinigen Sie Ihr Projekt .... –

Antwort

-1

habe ich nur den Code in meinem Java SE Enviroment habe ich dies:

Betrag: 4 Summe: 11 Durchschnitt: 2,75

Nun, ich, habe kein Problem sehen, aber Sie habe sagen Sie, dass Sie einen Server benutzen?

diese Fehler:

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

bei Main.main (Main.java:8)

Da ich weiß, ist, weil Ihre Klasse dosn't diese Methode, also in meiner bescheidenen Meinung nach ich vorschlagen Du kompilierst die Klasse erneut mit dem void, das du willst und aktualisierst den Server (neustart) und du solltest die Änderung sehen, denn wie gesagt In meiner SE-Umgebung hat es funktioniert