Récemment, je lis le code source de Spring Framework. Quelque chose que je ne peux pas comprendre va ici:
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;
}
}
Cette méthode fait partie de la classe org.springframework.core.MethodParameter
. Le code est facile à comprendre tandis que les commentaires sont difficiles.
REMARQUE: aucune expression ternaire pour conserver la compatibilité JDK <8 même lors de l'utilisation du compilateur JDK 8 (éventuellement en sélectionnant
java.lang.reflect.Executable
comme type commun, avec cette nouvelle classe de base non disponible sur les anciens JDK)
Quelle est la différence entre l'utilisation d'une expression ternaire et l'utilisation d'une if...else...
construction dans ce contexte?