java中,(o==null ? get(i)==null : o.equals(get(i))) 怎么理解?

2024-11-15 01:03:25
推荐回答(5个)
回答1:

(o==null ? get(i)==null : o.equals(get(i)))

三木运算 表达式 ? 值1 :值2

意思就是如果表达式为true返回值1 否则返回值2 值1和值2必须是同一类型

你这就是如果o==null 那么返回get(i)==null否则返回o.equals(get(i))

后面两个都是布尔值所以是可以的。。

你可以boolean b = (o==null ? get(i)==null : o.equals(get(i)));

回答2:

这是三目运算,如果o==null成立的话,则运行get(i)=null。不成立的话则运行o.equals(get(i)) !!!!!

条件判断,成立则运行冒号前的话,不成立则运行后面的。

回答3:

o==null 是否成立 成立则 执行get(i)==null (返回的是布尔值 TRUE or false) o==null 不成立 则执行 o.equals(get(i) (返回的也是布尔值)

回答4:

?: 是一个三目运算符
上面的等于
if(o==null){
return get(i)==null//返回get(i)==null的值
}else{
return o.equals(get(i))//返回o.equals(get(i))
}

回答5:

问号表达式
,(o==null ? get(i)==null : o.equals(get(i)))
如果 o==null 直立(真),则取:前面的、否则取:后边的