Java 三元运算符与 if/else 在 <JDK8 兼容性
最近我正在阅读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 兼容性(可能选择为通用类型,而该新基类在较旧的 JDK 上不可用)
java.lang.reflect.Executable
在此上下文中使用三元表达式和使用构造有什么区别?if...else...