我们可以在检查嵌套 java 对象中的 null 时避免 npe 吗?
1) if(null !=parentObj.childObj)
2) if(parentObj.childObj != null)
你认为“1”会避免潜在的空指针异常吗在“parentObj”为空的情况下,与“2”相反?
1) if(null != parentObj.childObj)
2) if(parentObj.childObj != null)
Do you think that "1" will avoid a potential null pointer exception in the case where 'parentObj' is null, in contrast to "2"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不会。
如果 ParentObj 为 null,则任何调用方法或引用字段的尝试都将导致 NullPointerExcepton。 != 总是评估双方。
只需首先检查parentObj是否为null并进行适当处理。
No.
If parentObj is null then any attempt to call a method or reference a field will result in a NullPointerExcepton. != always evaluates both sides.
Just check if parentObj is null first and handle it appropriately.
为什么不只是
if(parentObj != null &&parentObj.childObj != null)
?Why not just
if(parentObj != null && parentObj.childObj != null)
?如果parentObj为null,引用parentObj上的任何方法/字段将导致NPE。换句话说,您需要
if (parentObj != null &&parentObj.childObj != null)
来避免 NPE。 Groovy 通过 安全导航减少了这种(非常常见)的冗长类型运算符,它允许您编写if (parentObj?.childObj)
。If parentObj is null, referencing any method/field on parentObj will result in an NPE. In other words, you need
if (parentObj != null && parentObj.childObj != null)
to avoid an NPE. Groovy cuts down on this (very common) type of verbosity with the safe navigation operator, which lets you writeif (parentObj?.childObj)
.