社区
Java SE
帖子详情
xxx.equals(null)和xxx == null 的区别
whyy0
2004-09-23 04:32:57
同上
我只问空的这种情况,别的情况不用解释,谢谢
...全文
5674
22
打赏
收藏
xxx.equals(null)和xxx == null 的区别
同上 我只问空的这种情况,别的情况不用解释,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shine333
2004-09-25
打赏
举报
回复
public boolean test(Object xxx) {
return xxx.equals(null) == (xxx == null);
}
test永远不可能返回true(前提是equals的写法,符合那几条规则)
:P
Tasia
2004-09-25
打赏
举报
回复
happyegg(想转型的程序员) 说的是对的。
即使程序写得像jamesfancy()边城狂人(James Fancy) 这样,XXX为空时也同样是抛出NullPointerException.
你想相,是这样的:
MyClass XXX = null;
XXX.equals(Oobj);
当然是一个异常。
dyhml
2004-09-25
打赏
举报
回复
equals(Object o)是自己写的,
Object 内默认为:
public boolean equals(Object obj) {
return (this == obj);
}
来自java源码.src.zip
gadagada
2004-09-24
打赏
举报
回复
1
晕啊,
这个问题根本就不成立哈.
请问大家会哪个猪头会写 XX.equal(null)?
明摆着就算有XX是null,肯定是出NullPointException.
xueqs
2004-09-24
打赏
举报
回复
up
dlxu
2004-09-24
打赏
举报
回复
如果XXX是Object的话,用equals方法的话,如果其中参数为空,那么肯定返回false,如果XXX不是OBJECT,那么就没有equals方法
baffling
2004-09-24
打赏
举报
回复
同意happyegg的说法!
beakham
2004-09-24
打赏
举报
回复
同意happyegg的说法!
happyegg
2004-09-24
打赏
举报
回复
xxx.equals(null)和xxx == null
区别就是,如果程序能正常运行下去的话
xxx.equals(null)一定只能返回false
xxx == null可能返回true,也可能返回false
因为如果xxx是null的话
xxx.equals(null)会抛出NullPointerException
xxx == null返回true
如果xxx不是null的话......
vongood
2004-09-24
打赏
举报
回复
对于null,是一样的吧。
易点互联
2004-09-24
打赏
举报
回复
equals比较的是实体内容,==比较的对象的引用
是不一样的
whyy0
2004-09-24
打赏
举报
回复
CJMaster(Master): 对于null来说会有什么不同?判断的结果会有不同吗?
liudongbaollz
2004-09-24
打赏
举报
回复
支持 jamesfancy()边城狂人(James Fancy) ,他对于xxx.equals(null)的解释很确切
同时支持flyforlove(为情飞) ,他对xxx.equals(null)的原理说得很好。
至于xxx == null 是判断该引用是否是否为空对象,一般情况,定义对象是通常为:
Object xxx=null;
然后赋值
xxx = new Object();
flyforlove
2004-09-24
打赏
举报
回复
equals方法有什么功能只有定义类的用户自己知道,
所以上面的关于equals功能的讨论都是没有道理的。
边城狂人
2004-09-24
打赏
举报
回复
equals 也可能返回 true 的,比如某个人写了这样一个类
public class MyClass {
public boolean equals(Object obj) {
if (obj == null) return true;
else if (obj instanceof MyClass) return true;
else return false;
}
}
不要说我极端,这种可能并不是没有。
所以,equals(null) 到底返回什么,得相比较的类的实现。不能武断的说一定为 false.
sabbathsabbath
2004-09-24
打赏
举报
回复
equals()比较二者内容是否相等,==比较二者是否为同一引用,即指向二者的指针是否相等,说白了就是判断二者是不是同一个东西。
equals()是类的方法,调用它必然要引用对象,如果XXX的值为null,必然会抛异常;如果XXX的值不为null,此方法返回false,也就是说不可能返回true。
用==判断的话分两种情况:如果两个操作数是基本类型,那么没什么新鲜的,跟c一样,就是1等于1、2等于2的问题;如果两个操作数是对象,那么一定当两个对象是同一个,才会返回true,否则即使二者的内容一样,指向它们的指针未必相等,也就不一定返回true。
具体到这个问题,结论是:equals方法恒为false,双等号有可能返回true。
RaistlinYu
2004-09-24
打赏
举报
回复
楼主是钻牛角尖了,其实他对equals和==是很了解的,他只是在考虑null这种特殊情况而已
sylmoon
2004-09-24
打赏
举报
回复
详细请看Practical Java 中文版,对JAVA的相等性阐述相当明白
sylmoon
2004-09-24
打赏
举报
回复
用”==“测试两个基本类型是否相等,或指向同一个对象。用“equals ”方法测试两个对象是否相等。JAVA 提供了对象,基本类型,和相等性三个观念,这三个要素是进行class设计的基础。
Practical Java
hyhu
2004-09-24
打赏
举报
回复
呵呵,是的,对null做引用当然会报NullPointException,要不就是返回一定为false
加载更多回复(2)
XXX
.
equals
(
null
)和
XXX
==
null
在AbstractMap中的containsValue和containsKey中判断值和键时,都分情况进行了判断 如果要找的是
null
则用
xxx
==...
XXX
.
equals
(
null
)和
XXX
==
null
如果
XXX
是
null
,
XXX
.
equals
(
null
)就一定会报错
Null
Pointe
xxx
==
null
和
xxx
.
equals
(
null
)的
区别
而对
xxx
.
equals
(
null
)而言,他将永远返回false,因为如果
xxx
不是
null
,将不会返回false,如果
xxx
是
null
的话,将会抛出空指针异常
Null
PointerException。 永远不要用
xxx
.
equals
(
null
),因为没有意义。 转载于:...
xxx
.
equals
(
null
),
xxx
==
null
1.
xxx
.
equals
(
null
) 只有
xxx
是object的时候才有
equals
()方法,如果
xxx
为
null
则上面的表达式会抛出
null
PointerException,如果
xxx
不是
null
对象则此表达式一定只能返回false. 2.
xxx
==
null
此...
java判断list为空、
xxx
==
null
和
xxx
.
equals
(
null
)的
区别
list.isEmpty()和list.size()==0 没有
区别
isEmpty()判断有没有元素 而size()返回有几个元素 如果判断一个集合有无元素 建议用isEmpty()方法.这清晰,简明 list!=
null
跟!list.isEmpty()有什么
区别
?
"".
equals
(
xxx
)和
xxx
.
equals
("")的
区别
今天做项目发现如下这个问题 看见别人用 if ("abc".
equals
(str)),然后自作聪明地认为if (str.
equals
(...=
null
的时候的确是没有
区别
的 当 str ==
null
的时候,str.
equals
("abc")就会出现空指针异常了。 用 nul...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章