Recentemente sto leggendo il codice sorgente di Spring Framework. Qualcosa che non riesco a capire va qui:
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;
}
}
Questo metodo è un membro della classe org.springframework.core.MethodParameter
. Il codice è facile da capire mentre i commenti sono difficili.
NOTA: nessuna espressione ternaria per mantenere la compatibilità JDK <8 anche quando si utilizza il compilatore JDK 8 (potenzialmente selezionando
java.lang.reflect.Executable
come tipo comune, con quella nuova classe base non disponibile su JDK precedenti)
Qual è la differenza tra l'uso di espressioni ternarie e l'uso di if...else...
costrutti in questo contesto?