所以我做了一些关于Java中的NullPointerExceptions的解读,但我还没有完全理解它。(JAVA)空指针异常,我很困惑
这是为什么有效?
if ((department != null && department.equals("COMP")) || (department != null && department.equals("COMM")))
{
this.department = department;
}
同时又有工作是当我第一次检查!= NULL,然后做第二个嵌套的if语句然后检查“COMP”或“COMM”的另一种方法。
与上面相比,这个怎么不起作用?
if (department != null || department.equals("COMP")) || department.equals("COMM")))
{
this.department = department;
}
像大多数人一样,我不喜欢找到一个意外的解决方案,但并不真正理解为什么它是一个解决方案。我对编程仍然很陌生,所以我试图理解实际发生的事情。当我给出一个隐喻用来比较时,我明白事情是最容易的,如果有人能以这种方式为我解释它,那真的会有所帮助> < ;;
非常感谢你们!
什么是部门?第二,第二个代码片段不是相同的逻辑 – Li357
那么如果你尝试调用未初始化的对象上的任何方法,它会抛出一个异常,以防止我们使用像部门!= null这样的检查,关于研究一些java中的逻辑运算符可能会有帮助 – Viney
[Java逻辑运算符短路]可能重复(http://stackoverflow.com/questions/8759868/java-logical-operator-short-circuiting) – Nier