【发布时间】:2015-12-05 03:55:54
【问题描述】:
最近在看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 的成员。代码通俗易懂,cmets难。
注意:即使使用 JDK 8 编译器(可能选择
java.lang.reflect.Executable作为通用类型,旧 JDK 上不提供该新基类),也没有保持 JDK
在这种情况下使用三元表达式和使用if...else... 构造有什么区别?
【问题讨论】:
标签: java java-8 ternary-operator