Ostatnio czytam kod źródłowy Spring Framework. Coś, czego nie rozumiem, jest tutaj:
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;
}
}
Ta metoda jest członkiem klasy org.springframework.core.MethodParameter
. Kod jest łatwy do zrozumienia, a komentarze trudne.
UWAGA: brak wyrażenia potrójnego, aby zachować zgodność z JDK <8, nawet podczas korzystania z kompilatora JDK 8 (potencjalnie wybrany
java.lang.reflect.Executable
jako typowy typ, z nową klasą bazową niedostępną na starszych JDK)
Jaka jest różnica między używaniem wyrażenia trójskładnikowego a używaniem if...else...
konstrukcji w tym kontekście?