我的代码中有一个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:你手头有第二个案子。