Java Null检查失败,代码继续执行if语句



我的代码中有一个if条件,如果变量的值是Null,我不希望我的代码继续进入if条件,但由于某种原因,条件通过并继续到下一部分,但字段的值是NULL

我不确定为什么会发生这个问题。类似的方法适用于其他字段,但不适用于此字段:

if (myField != null) {
System.out.println("WITHIN IF : " + myField);
//prints null
}

我研究了一下,尝试了一些东西,比如:

if(!Objects.isNull(myField))

在以下情况下,条件不成立,说明java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of toString() is null

if(myField != null && myField.toString().equals("null"))
if(myField != null && myField.toString().equalsIgnoreCase("null"))

我不明白这里出了什么问题。值为空,但检查失败,它在我的If条件内。如果我尝试转换为toString(),那么它会失败,说值为null。

有人能帮我解决这个问题吗?

当java计算"WITHIN IF : " + myField表达式的值时,在myField对象上调用toString方法。

可以返回字符串"null",也可以返回实际的null引用。在这两种情况下,您将得到"WITHIN IF : null"作为结果。

PS:你手头有第二个案子。

最新更新