Baru-baru ini saya membaca kode sumber Spring Framework. Sesuatu yang tidak saya mengerti diletakkan di sini:
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;
}
}
Metode ini adalah anggota kelas org.springframework.core.MethodParameter
. Kode mudah dimengerti sementara komentarnya sulit.
CATATAN: tidak ada ekspresi terner untuk mempertahankan kompatibilitas JDK <8 bahkan ketika menggunakan kompiler JDK 8 (berpotensi memilih
java.lang.reflect.Executable
sebagai tipe umum, dengan kelas dasar baru itu tidak tersedia pada JDK lama)
Apa perbedaan antara menggunakan ekspresi terner dan menggunakan if...else...
konstruk dalam konteks ini?