Java嵌套Ifelse速记
if (getNo() != null ? !compareNo(getNo(), b.getNo()) : getNo() != null) {
return 100;
}
假设getNo()
不是null
,这是否意味着如果!compareNo(getNo(), b.getNo())
的计算结果为true
,则return 100
运行
最后一个表达式(在:)后面会发生什么
你可以在下面搜索框中键入要查询的问题!
if (getNo() != null ? !compareNo(getNo(), b.getNo()) : getNo() != null) {
return 100;
}
假设getNo()
不是null
,这是否意味着如果!compareNo(getNo(), b.getNo())
的计算结果为true
,则return 100
运行
最后一个表达式(在:)后面会发生什么
# 1 楼答案
真是一团糟。让我重构一些东西,这样我就能看到发生了什么:
和
和
但是如果
getNo()
是null
,那么我们发现自己处于else
条件下,这将把mainCondition
设置为false
,所以我们不会return
,也就是说,写这篇文章的一个更简单的方法是:或者
答案是肯定的:如果
!compareNo(getNo(), b.getNo())
为真,那么原始语句将返回100
至于
:
之后的部分会发生什么,除非getNo()
为空,否则不会对其进行评估,但是如果getNo()
确实是null
,那么我们已经知道结果,因此在那里包含它是非常多余的