Разница между приведением к String и String.valueOf

В чем разница между

Object foo = "something";
String bar = String.valueOf(foo);

и

Object foo = "something";
String bar = (String) foo;
Комментарии к вопросу (1)
Решение

Приведение к строке работает только тогда, когда объект действительно является строкой:

Object reallyAString = "foo";
String str = (String) reallyAString; // works.

Оно не сработает, если объект является чем-то другим:

Object notAString = new Integer(42);
String str = (String) notAString; // will throw a ClassCastException

String.valueOf(), однако, попытается преобразовать в String все, что вы в него передадите. Он работает как с примитивами (42), так и с объектами (new Integer(42), используя для этого объект toString()):

String str;
str = String.valueOf(new Integer(42)); // str will hold "42"
str = String.valueOf("foo"); // str will hold "foo"
Object nullValue = null;
str = String.valueOf(nullValue); // str will hold "null"

Особенно обратите внимание на последний пример: передача null в String.valueOf() вернет строку "null".

Комментарии (8)

Строку.метод valueOf(ФОО)вызывает **фу**'ы.метод toString () и присваивает результат на бар. Это null и тип безопасной эксплуатации.

Кастинг будет просто назначить фу в бар, если эти типы совпадают. В противном случае выражение будет бросать исключение ClassCastException.

Комментарии (1)

Оба генерируют одинаковый вывод в случае String.

В случае, если предоставленный объект не является строкой, приведение не работает.

Комментарии (0)

Кастинг означает, что объект должен быть типа String, в то время как String.valueOf() может принимать и другие типы.

Комментарии (0)

Строку.метод valueOf используется для получения строкового представления он's объекта параметр.

(Строка) значение забросы значение объекта в строку.

Вы можете использовать строку.метод valueOf метод для получения строкового представления объекта, не беспокоясь о null ссылки. Если вы пытаетесь бросить строку на нулевую ссылку вы получите исключение NullPointerException.

Комментарии (0)

окончательный объект obj = null;в В последней строке strValOfObj = строка.метод valueOf(объект); параметр obj > заключительные строки strCastOfObj = (строка); если система (strValOfObj == нуль).из.код println("и strValOfObj имеет значение null тогда"); если система (strCastOfObj == нуль).из.код println("и strCastOfObj имеет значение null тогда");

Вывод: strCastOfObj нуль

Комментарии (0)

в строку.метод valueOf(); строку как работать типажей всех аргумент, передаваемый в метод valueOf (), преобразовать в строку, а как число.строка() преобразует целое число в строку только

Комментарии (0)

Первый один я.е строку.метод valueOf возвращает строку, только если объект является представимым тип, который является типом значения или строки.. иначе это бросает исключение.

В последние годы, вы непосредственно литья, которые могут быть выполнены, если объект не'т строку.

Онлайн пример.

http://ideone.com/p7AGh5

Комментарии (1)