Recentemente estou lendo o código-fonte do Spring Framework. Algo que não consigo entender vai aqui:
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 é um membro da classe org.springframework.core.MethodParameter
. O código é fácil de entender, enquanto os comentários são difíceis.
NOTA: nenhuma expressão ternária para reter a compatibilidade JDK <8, mesmo quando usando o compilador JDK 8 (potencialmente selecionando
java.lang.reflect.Executable
como tipo comum, com essa nova classe base não disponível em JDKs mais antigos)
Qual é a diferença entre usar expressão ternária e usar if...else...
construção neste contexto?