为什么这个字符串的值为null但是如果我检查它是否为null,结果为false?

时间:2015-10-12 13:37:35

标签: java string null

我疯狂地调试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

3 个答案:

答案 0 :(得分:2)

字符串的值为"null",而不是null。它有4个字符。

答案 1 :(得分:1)

从调试器看来,字符串似乎是字符串 "null",而不是java null - 即,它是一个四字母字符串 - {{1接下来是'n',然后是'u',然后是另一个'l'

答案 2 :(得分:0)

您正在比较" null"字符串而不是null。