Gần đây tôi đang đọc mã nguồn của Spring Framework. Có gì đó tôi không thể hiểu được ở đây:
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;
}
}
Phương thức này là một thành viên của lớp org.springframework.core.MethodParameter
. Mã rất dễ hiểu trong khi các bình luận khó.
LƯU Ý: không có biểu thức bậc ba để duy trì khả năng tương thích JDK <8 ngay cả khi sử dụng trình biên dịch JDK 8 (có khả năng chọn
java.lang.reflect.Executable
là loại phổ biến, với lớp cơ sở mới đó không có sẵn trên các JDK cũ hơn)
Sự khác biệt giữa sử dụng biểu thức bậc ba và sử dụng if...else...
cấu trúc trong ngữ cảnh này là gì?