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
Linda HamiltonOriginal
2024-12-26 14:35:13478Durchsuche

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);
    }
}

Wann Kompiliert führt dieser Code zu folgendem Fehler:

error: incompatible types: void cannot be converted to int

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;
}
  • Option 2:Lassen Sie die Zuweisung in der Hauptmethode weg:
public static void main(String[] args) {
    add(1, 1);
}

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!

Stellungnahme:
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