Recientemente estoy leyendo el código fuente de Spring Framework. Algo que no puedo entender va aquí:
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;
}
}
Este método es miembro de la clase org.springframework.core.MethodParameter
. El código es fácil de entender mientras que los comentarios son difíciles.
NOTA: no hay expresión ternaria para retener la compatibilidad JDK <8 incluso cuando se usa el compilador JDK 8 (potencialmente seleccionando
java.lang.reflect.Executable
como tipo común, con esa nueva clase base no disponible en JDK más antiguos)
¿Cuál es la diferencia entre usar una expresión ternaria y usar una if...else...
construcción en este contexto?