Bagaimana saya bisa mengkonversi Java CharSequence
ke String
?
java
string
charsequence
Belgi
sumber
sumber
setText(CharSequence)
tidak melakukan apa yang Anda butuhkan?Ada masalah halus di sini yang sedikit paham.
The
toString()
metode memiliki implementasi basis diObject
.CharSequence
adalah sebuah antarmuka; dan meskipuntoString()
metode ini muncul sebagai bagian dari antarmuka itu, tidak ada pada saat kompilasi yang akan memaksa Anda untuk menimpanya dan menghormati batasan tambahan yangCharSequence
toString()
ditempatkan olehtoString()
metode javadoc pada metode tersebut; yaitu bahwa ia harus mengembalikan string yang berisi karakter dalam urutan yang dikembalikan olehcharAt()
.IDE Anda bahkan tidak akan membantu Anda dengan mengingatkan bahwa Anda mungkin harus menimpanya
toString()
. Misalnya, di intellij, ini yang akan Anda lihat jika Anda membuatCharSequence
implementasi baru : http://puu.sh/2w1RJ . Perhatikan tidak adanyatoString()
.Jika Anda mengandalkan
toString()
sewenang-wenangCharSequence
, itu akan berhasil asalkanCharSequence
pelaksana melakukan pekerjaan mereka dengan benar. Tetapi jika Anda ingin menghindari ketidakpastian sama sekali, Anda harus menggunakan aStringBuilder
danappend()
, seperti:sumber
CharSequence
Antarmuka secara eksplisit menentukantoString()
- implementor tidak akan melewatkan ini. The javadoc negara "Mengembalikan sebuah string yang berisi karakter dalam urutan ini dalam urutan yang sama seperti urutan ini. Panjang string akan menjadi panjang urutan ini" sejak awal di 1,4 . Teman-teman, harap verifikasi apa yang AndaStringBuilder
bisa gagal melakukan apa yang Anda harapkan. Hal yang sama berlaku untuk antarmuka lain, sepertiList
atauSet
, khususnya metodeequals()
danhashCode()
metode yang akan dikompilasi tanpa penggantian, tetapi harus diganti sesuai dengan kontrak.Anda dapat langsung menggunakan String.valueOf ()
Meskipun ini sama dengan
toString()
melakukan pemeriksaan nol padacharSequence
sebelum benar-benar memanggil toString.Ini berguna ketika suatu metode dapat mengembalikan nilai
charSequence
atau anull
.sumber
charSequence
null maka string yang dikembalikan akan"null"
dan tidaknull
.