2015-11-24 5 views
0

Я проверял метод String.valueOf и нашел, что когда null отправлен в valueOf, он возвращает "null" строку вместо чистой java null.Почему «null» String возвращается в String.valueOf вместо java null?

Мой вопрос: почему кто-то вернет "null" строка почему бы не чистая java null.

public static String valueOf(Object obj) { 
    return (obj == null) ? "null" : obj.toString(); 
} 

Я спрашиваю это потому, что разработчик должен будет проверить с equals методом "null" строки, а не как stringObj != null.

[обновление]: хорошо были вниз голосов на этот вопрос, я не поднимая вопрос в апи, но в моей нынешней компании есть много API, который возвращает "null" строки вместо чистого Java null, поэтому я задал этот вопрос, чтобы узнать, стоит ли возвращать строку "null", если мы нашли null строковый объект.

+2

Вот только как это было билд вести себя. Полезно в основном для печати (и очень полезно *, что System.out.println не выдает ошибку, если передано «null») – Thilo

+0

Не пропускайте «нуль» в первую очередь? –

+0

_ «Я спрашиваю об этом, потому что разработчику придется проверять с помощью метода equals для строки« null », а не как stringObj! = Null.» _ Если вы напрямую сравниваете строки, просто проверьте ссылки. В противном случае это означает, что ваш метод equals основан на строковом представлении объекта, который не является хорошим. –

ответ

9

Поскольку String.valueOf() возвращает String, то для null является "null".

Разработчик не должен проверять возвращаемое значение вообще, поскольку оно предназначено для целей отображения, а не для проверки того, была ли ссылка нулевой или нет.

0

Потому что вам нужно только строковое представление null, и так оно и было. Назначение этого метода - вернуть представление строки.

Проверить ссылку String.valueOf

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