Java为String引用打印“null”!= to null

时间:2011-12-02 17:13:35

标签: java object null boolean

我有大代码和这样的行:

System.out.println(car.getName());
System.out.println(car.getName() == null);

第一行打印输出: 空

但第二行打印输出为false,所以null == null为false?

我也试过System.out.println(car.getName() == "null");,因为getName返回String但结果相同

3 个答案:

答案 0 :(得分:4)

说到String,您需要使用equals方法:

System.out.println("null".equals(car.getName());

如果它实际返回的字符串“null”与null不同。

为什么使用equals代替==,我找不到比one更简单的解释:

  

要比较字符串是否相等,请不要使用==。 ==运算符检查两个对象是否完全相同。两个字符串可以是不同的对象,但具有相同的值(在它们中具有完全相同的字符)。使用.equals()方法比较字符串是否相等。

答案 1 :(得分:1)

如果我不得不猜测,你的代码中就有这样的内容:

public String getName()
{
    return "null"; 
}

所以,当你运行测试时,

System.out.println(car.getName() == null);

它正在使用值"null"测试字符串对象null,这确实是错误的。

答案 2 :(得分:1)

结果是“null”,而不是null,因此您的代码将是:

System.out.println(car.getName().equals("null"));