Heim  >  Artikel  >  Java  >  Warum verursacht die Rückgabe von Null von einer „temp()“-Methode in Java keinen Compilerfehler, während dies bei „same()“ mit einer If-Anweisung der Fall ist?

Warum verursacht die Rückgabe von Null von einer „temp()“-Methode in Java keinen Compilerfehler, während dies bei „same()“ mit einer If-Anweisung der Fall ist?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 22:00:03772Durchsuche

Why Does Returning Null from a `temp()` Method Not Cause a Compiler Error in Java, While `same()` with an If Statement Does?

Null als int zurückgeben

In Java löst die temp()-Methode keinen Compilerfehler aus, obwohl sie für einen int null zurückgibt, while same() funktioniert, wenn es als if-Anweisung dargestellt wird. Diese Diskrepanz entsteht durch die Interpretation von Null-Rückgabewerten durch den Compiler.

Ternärer Operator

Beim ternären Operator behandelt der Compiler Null als Null-Referenz auf eine Ganzzahl. Befolgen Sie die Autoboxing-/Unboxing-Regeln (Java Language Specification 15.25). Dies führt dazu, dass ein int-Wert in eine Ganzzahl gepackt und zurückkonvertiert wird, sodass ein Null-Rückgabewert möglich ist. Allerdings wird dadurch zur Laufzeit eine NullPointerException generiert.

if-Anweisung

Bei Verwendung einer if-Anweisung erzwingt der Compiler inkompatible Typen zwischen null und int. Er erwartet einen int-Rückgabewert und lässt keine Nullzuweisung zu, im Gegensatz zum ternären Operator, der Autoboxing-/Unboxing-Konvertierungen ermöglicht.

Das obige ist der detaillierte Inhalt vonWarum verursacht die Rückgabe von Null von einer „temp()“-Methode in Java keinen Compilerfehler, während dies bei „same()“ mit einer If-Anweisung der Fall ist?. 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