最近、Spring Frameworkのソースコードを読んでいます。理解できないことがここにあります:
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;
}
}
このメソッドは、クラスのメンバーですorg.springframework.core.MethodParameter
。コメントは難しいですが、コードは理解しやすいです。
注:JDK 8コンパイラを使用している場合でもJDK <8の互換性を維持するための三項式
java.lang.reflect.Executable
はありません(古いタイプのJDKでは利用できない新しい基本クラスで、共通タイプとして選択する可能性があります)
if...else...
この文脈で三項式を使用することと構成を使用することの違いは何ですか?