我疯狂地调试Java应用程序并检查String对象是否为null。
所以我有以下情况。我以这种方式获得String
个对象:
String notePrecedenti = progetto.getDesNotVal();
使用Eclipse调试器我发现 notePrecedenti 的值是:
"notePrecedenti" null
hash 0
hash32 0
value (id=309)
[0] n
[1] u
[2] l
[3] l
但是现在如果我执行此检查(在代码或调试器Expression选项卡中): notePrecedenti == null 它表示结果是 false (所以它表示字符串不是null
)。
怎么可能?我错过了什么?为什么值为null但是检查时它是否为null
?
答案 0 :(得分:2)
字符串的值为"null"
,而不是null
。它有4个字符。
答案 1 :(得分:1)
从调试器看来,字符串似乎是字符串 "null"
,而不是java null
- 即,它是一个四字母字符串 - {{1接下来是'n'
,然后是'u'
,然后是另一个'l'
。
答案 2 :(得分:0)
您正在比较" null"字符串而不是null。