เมื่อเร็ว ๆ นี้ฉันกำลังอ่านซอร์สโค้ดของ 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 รุ่นเก่า)
อะไรคือความแตกต่างระหว่างการใช้นิพจน์ ternary และการใช้if...else...
โครงสร้างในบริบทนี้?