5

我注意到了这件事:我的班级有boolean成员,并且在某个运行点我看到它在调试器中的价值为null. 但是当我使用 getter 方法时,它会返回false.

我知道,大多数书都告诉你,boolean在 Java 中只有两个值,不像 C/C++ 中每个非零数都可以解释为true. 所以我想知道,那里发生了什么?

null当某些其他类型的值或可以解释为时,是否还有其他情况false?也许对此的解释在 JLS 中的某个地方,有人可以指出我吗?

编辑:确实,昨天对于调试来说是糟糕的一天。首先,我浪费了 4 个小时来寻找错误的来源,当我反转源并再次进行相同的更改时,该错误消失了。然后这个。我只是试图重现,但不能。是流泪还是只是星期一是艰难的一天?我不知道。感谢大家的回应!我想你现在可以投票关闭或删除这个问题。

4

1 回答 1

11

听起来该字段被声明为可为空的包装类型Boolean而不是boolean原始类型。

于 2012-10-29T16:16:40.803 回答