Apa perbedaan antara
Object foo = "something";
String bar = String.valueOf(foo);
dan
Object foo = "something";
String bar = (String) foo;
Jawaban:
Mentransmisikan ke string hanya berfungsi jika objek sebenarnya adalah string:
Object reallyAString = "foo";
String str = (String) reallyAString; // works.
Ini tidak akan berfungsi jika objeknya adalah sesuatu yang lain:
Object notAString = new Integer(42);
String str = (String) notAString; // will throw a ClassCastException
String.valueOf()namun akan mencoba mengubah apa pun yang Anda berikan menjadi file String. Ini menangani primitif ( 42) dan objek ( new Integer(42), menggunakan objek itu 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"
Perhatikan terutama contoh terakhir: meneruskan nullke String.valueOf()akan mengembalikan string "null".
String.valueOf()dan obj.toString()? (Yang pertama terlintas di benak saya adalah bahwa obj.toString()melalui pengecualian jika objnol.)
null. Jika Anda melihat implementasi String.valueOf()di JDK Anda, Anda akan melihat bahwa semua yang dilakukannya untuk referensi non-null adalah memanggil toString().
str = String.valueOf(null)di Java 7 Update 80, itu melempar NullPointerException.
String.valueOf((Object) null)akan mengembalikan String "null". Memanggilnya dengan literal nullakan memanggil String # valueOf (char []) yang sebenarnya melempar NPE saat Anda masuk null.
String.valueOf(foo)memanggil foo 's .toString()metode dan ditunjuk hasilnya ke dalam bar . Ini adalah operasi yang aman dan bertipe null.
Transmisi hanya akan menetapkan foo ke bilah , jika jenisnya cocok. Jika tidak, ekspresi tersebut akan menampilkan ClassCastException.
String.valueOf(Object)memanggilObject.toString()
Keduanya menghasilkan keluaran yang sama dalam kasus String.
Casting gagal dalam kasus objek yang diberikan Bukan a string.
Metode String.valueOf digunakan untuk mendapatkan representasi String dari objek parameternya.
(String) nilai mentransmisikan nilai objek ke string.
Anda dapat menggunakan metode String.valueOf untuk mendapatkan representasi String dari suatu objek tanpa mengkhawatirkan referensi null. Jika Anda mencoba mentransmisikan String pada referensi null, Anda akan mendapatkan NullPointerException.
Yang pertama yaitu, String.valueOfmengembalikan string hanya jika objek adalah tipe yang dapat direpresentasikan yang merupakan tipe nilai atau String .. Jika tidak, itu akan melontarkan pengecualian.
Yang terakhir, Anda langsung melakukan casting yang bisa gagal jika objeknya bukan string.
Contoh online.
di String.valueOf (); string sebagai pekerjaan typecasting semua argumen yang diteruskan dalam metode valueof () dikonversi dalam String dan seperti integer.string (), ubah integer menjadi string saja