-4

有很多答案和博客说在 Java 中检查 null 或空字符串的正确方法如下

if(str != null && !str.isEmpty())

但是后来很多答案说

if(str == null)

是检查字符串空值的错误方法,因为在此检查中,我们查看两个对象是否占用内存中的相同空间。我理解这个声明,但如果是这种情况,那么即使使用 != 完成的检查也不应该是检查 null 与否的正确方法。请帮助我理解这种情况。

4

1 回答 1

0

正如评论已经指出的那样,检查 String 引用(或任何对象)是否null正确也不是坏习惯。

我认为您混淆了两个概念: object reference和 object contentnull是一个空引用,因此您始终可以检查对象引用(例如变量、常量、参数等)是否为空或未使用==,因为您正在比较引用,而不是内容。另一方面,要比较 2 个字符串(它们的内存内容,而不是它们的内存地址),您应该使用equalsand not ==。这是因为equals比较对象的内容(实际上它并不那么简单,因为它取决于它的实现和/或覆盖,但现在让我们忘记它)而不是对象引用。

于 2016-12-07T12:53:08.087 回答