Heim > Java > javaLernprogramm > Warum wirft Java „Inkompatible Typen: void kann nicht in … konvertiert werden' aus?

Warum wirft Java „Inkompatible Typen: void kann nicht in … konvertiert werden' aus?

Linda Hamilton
Freigeben: 2024-12-26 14:35:13
Original
477 Leute haben es durchsucht

Why Does Java Throw

Inkompatible Typen verstehen: Void kann nicht konvertiert werden

Die Java-Compiler-Fehlermeldung „Inkompatible Typen: Void kann nicht konvertiert werden in …“ weist auf einen Versuch hin, eine Methode, die keinen Wert zurückgibt, auf eine Weise zu verwenden, die einen Rückgabewert erfordert.

Was bewirkt Void Mean?

Void ist ein einzigartiger Typ in Java, der „kein Wert“ bedeutet. Als ungültig deklarierte Methoden geben kein Ergebnis zurück.

Fehlerursachen

Dieser Fehler tritt auf, wenn:

  • Eine als ungültig deklarierte Methode void wird aufgerufen und der Code versucht, seinen Rückgabewert einer Variablen zuzuweisen oder ihn in einem Ausdruck zu verwenden.
  • Eine Methode erwartet eine Rückgabe Wert eines bestimmten Typs, aber die aufgerufene Methode gibt void zurück.

So beheben Sie den Fehler

Die Lösung hängt vom gewünschten Verhalten ab:

  • Wenn die Methode einen Wert zurückgeben soll:Ändern Sie die Methodendeklaration, um den entsprechenden Typ zurückzugeben (z. B. int, Zeichenfolge).
  • Wenn die Methode keinen Wert zurückgeben muss: Lassen Sie die Zuweisung weg oder verwenden Sie die Methode, ohne zu versuchen, ihren Rückgabewert zu verwenden.

Detailliertes Beispiel

Beachten Sie den folgenden Code:

public class Test {
    private static void add(int a, int b) {
        int res = a + b;
    }

    public static void main(String[] args) {
        int sum = add(1, 1);
    }
}
Nach dem Login kopieren

Wann Kompiliert führt dieser Code zu folgendem Fehler:

error: incompatible types: void cannot be converted to int
Nach dem Login kopieren

Dies liegt daran, dass die Add-Methode als ungültig deklariert ist, der Aufruf in der Hauptmethode jedoch versucht, ihren Rückgabewert einer int-Variablen zuzuweisen. Um dies zu beheben:

  • Option 1:Ändern Sie die Add-Methode, um das Ergebnis zurückzugeben:
private static int add(int a, int b) {
    int res = a + b;
    return res;
}
Nach dem Login kopieren
  • Option 2:Lassen Sie die Zuweisung in der Hauptmethode weg:
public static void main(String[] args) {
    add(1, 1);
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum wirft Java „Inkompatible Typen: void kann nicht in … konvertiert werden' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage