2016-05-19 2 views
-2
public static void main(String[] args) { 
    Long lo = null; 
    System.out.println(String.valueOf(lo) == null); 
} 

Почему приведенное выше утверждение возвращает false? Может кто-нибудь, пожалуйста, объясните ..Почему String.valueOf (Object obj) == null возвращает false, когда аргумент obj равен null?

+0

Мы используем метод equals() для проверки равенства объектов (String в этом случае), а не «==». – Aakash

+0

@aakash вы не используете 'equals()' для проверки на null. Он никогда не вернет ложь. – shmosel

+0

@shmosel Я никогда не говорил, что вы используете 'equals()' для проверки на 'null'. Пожалуйста, прочитайте мой комментарий еще раз. Конечно, в моем комментарии были некоторые пробелы, которые, как я думал, могут быть легко заполнены понятием OP о Java. 'String.valueOf (lo)' будет возвращать строку «null», которая не равна null. Итак, если OP хочет проверить это, он должен был использовать 'String.valueOf (lo) .equals (" null ")'. И как вам уже ответили, поздравляю. – Aakash

ответ

2

Читает Javadoc:

Возвращает:

если аргумент null, то строка равна "null"; в противном случае возвращается значение obj.toString().

Другими словами, результатом является строка "null", не значениеnull.

Смежные вопросы