【问题标题】:Difference between null==object and object==null [duplicate]null==object 和 object==null 之间的区别 [重复]
【发布时间】:2010-06-09 08:20:59
【问题描述】:

您好,我想知道上述比较之间的差异?

检查object.getItems() == null 时出现空指针异常。 但是如果我把它改成null == object.getItems(),就可以了。

我确实调查过这个what is the difference between null != object and object!=null 但我没有得到满意的答复。

【问题讨论】:

  • 不,无论是否抛出 NPE,该更改都不会改变。重新检查你的假设,因为这两个表达式是等价的。
  • 我双向获得 NPE。当你尝试它时,究竟什么是 null,对象?
  • 请张贴完整的 Java 声明,也许问题只是一个放错位置/缺少括号。
  • object 为 null 或 getItems() 中存在问题。
  • 你能发布你的 object.getItems() 代码吗?我怀疑该方法中有什么东西会抛出 NullPointerException。

标签: java object null compare nullpointerexception


【解决方案1】:

(类似问题:Which is more effective: if (null == variable) or if (variable == null)?

null==object 和 object==null 的区别

没有语义差异。

object.getItems() == nullnull == object.getItems() 是等价的。

也许你把它和这个事实混为一谈了

nonNullObj.equals(obj)

obj.equals(nonNullObj)

可以有所作为(因为如果被调用者为空,第二种选择可能会导致 NPE)。

【讨论】:

  • 第二个 expressoin NPE 的原因是什么
  • @Rozer,如果 obj 为 null,则 .equals 方法调用将导致 NPE。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 2012-12-12
  • 1970-01-01
  • 2012-11-14
  • 2016-11-22
  • 2019-03-29
  • 1970-01-01
相关资源
最近更新 更多