您的位置:首页 > 移动开发 > Objective-C

使用三目运算符,判断两个对象是否相等(包括null的情况)

2012-08-03 16:25 489 查看
public static void main(String[] args) {
Object obj1 = null;
Object obj2 = null;
boolean e = ((obj1 == null) ? (obj2 == null) : (obj2 == null) ? false : obj1
.equals(obj2));
System.out.println(e);
}

很多的时候,我们就是认为这个程序输出的结果是false。但是很不幸得是计算的结果是true。

刚开始的时候,我们都习惯性的喜欢从左往右,一步一步地运算过去,到最后的结果是执行到

(obj1 == null) ? (obj2 == null) : (obj2 == null) ? false
然后后面的就不走了。所以就是false。
但是我想告诉你的是:这个程序是这样走的

(obj1 == null) ? (obj2 == null) : ((obj2 == null) ? false : obj1.equals(obj2));

后面的部分是个整体,如果前面的结果为true,后面就直接的跳过了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null object string