Kürzlich lese ich den Quellcode von Spring Framework. Etwas, das ich nicht verstehen kann, geht hier:
public Member getMember() {
// NOTE: no ternary expression to retain JDK <8 compatibility even when using
// the JDK 8 compiler (potentially selecting java.lang.reflect.Executable
// as common type, with that new base class not available on older JDKs)
if (this.method != null) {
return this.method;
}
else {
return this.constructor;
}
}
Diese Methode ist Mitglied der Klasse org.springframework.core.MethodParameter
. Der Code ist leicht zu verstehen, während die Kommentare schwierig sind.
ANMERKUNG: Kein ternärer Ausdruck, um die JDK <8-Kompatibilität beizubehalten, selbst wenn der JDK 8-Compiler verwendet wird (möglicherweise
java.lang.reflect.Executable
als allgemeiner Typ ausgewählt, da diese neue Basisklasse bei älteren JDKs nicht verfügbar ist)
Was ist der Unterschied zwischen der Verwendung des ternären Ausdrucks und der Verwendung des if...else...
Konstrukts in diesem Zusammenhang?