使用三目运算符,判断两个对象是否相等(包括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,后面就直接的跳过了。
相关文章推荐
- Java中判断对象是否相等的equals()方法使用教程
- 在java的集合中是怎么判断两个对象是否相等的?(重要!)
- Java判断对象是否为空(包括null ,"")
- java中判断两个对象是否相等的方法和代码
- Java判断对象是否为空(包括null ,"")
- java 判断两个对象是否相等 equals 和 hashcode() 的必要性
- java积累---------java判断两个set里的对象值完全相同----两个set中的值是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 判断两个对象是否相等,为什么必须同时重写equals()和hashcode()方法
- 判断两个obj对象是否相等
- 判断两个对象是否相等
- 默认的Equals并非是判断两个对象相等,而是判断是否是同一引用
- Java中如何判断两个对象是否相等(Java equals and ==)
- 判断两个对象是否相等
- 判断两个对象是否相等的js函数
- 判断两个对象是否相等的js函数
- python判断两个对象是否相等
- JS判断两个对象相同属性的属性值是否相等
- c#如何判断两个对象是否相等