Yanıtlar:
toString()Yöntemini çağırarak .
Bu dizideki karakterleri bu diziyle aynı sırada içeren bir dize döndürür. Dizenin uzunluğu bu dizinin uzunluğu olacaktır.
Burada biraz sorun olan ince bir sorun var.
toString()Yöntem, bir baz uygulaması vardır Object. CharSequencebir arayüzdür; ve toString()yöntem bu arabirimin bir parçası olarak görünse de, derleme zamanında onu geçersiz kılmaya ve CharSequence toString()yöntemin javadocunun yönteme eklediği ek kısıtlamalara uymaya zorlayacak hiçbir şey yoktur toString(); yani, tarafından döndürülen sırayla karakterleri içeren bir dize döndürmelidir charAt().
IDE'niz muhtemelen geçersiz kılmanız gerektiğini hatırlatarak size yardımcı olmaz toString(). Örneğin, intellij'de, yeni bir CharSequenceuygulama oluşturursanız göreceğiniz şey budur : http://puu.sh/2w1RJ . Yokluğunu not edin toString().
Eğer güvenirse toString()keyfi üzerine CharSequence, bu olmalıdır yapma işlevi CharSequenceuygulayıcısı düzgün bir iş yaptı. Ancak herhangi bir belirsizlikten tamamen kaçınmak istiyorsanız, bir StringBuilderve kullanmalısınız append():
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
CharSequence arayüzü açıkça tanımlar toString()- implementor bu kaçırmış olmaz. Javadoc durumları "bu sekans ile aynı sırada bu sırayla karakterleri içeren bir dizge. Dize uzunluğunu bu sekansın uzunluğu olacaktır" olarak başlangıçtan itibaren 1.4 . İnsanlar, lütfen ne doğruladığınızı doğrulayın
StringBuilderbeklediğiniz şeyi yapamaz. Aynı gibi başka bir arayüz, gider Listveya Setözellikle onların equals()ve hashCode()geçersiz kılma özelliği olmayan derlemek, ancak yöntemler gerekir sözleşmesine göre geçersiz kılınan olun.
String.valueOf () öğesini doğrudan kullanabilirsiniz
String.valueOf(charSequence)
Bu aslında aynı olsa da aslında toString çağırmadan önce toString()bir null kontrol yapar charSequence.
Bu, bir yöntem bir charSequenceveya nulldeğer döndüğünde faydalıdır .
charSequencenull ise , döndürülen dize olur "null"ve olmaz null.
setText(CharSequence)ihtiyacınız olanı yapmıyor mu?