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!