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
. CharSequence
bir 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 CharSequence
uygulama 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 CharSequence
uygulayıcısı düzgün bir iş yaptı. Ancak herhangi bir belirsizlikten tamamen kaçınmak istiyorsanız, bir StringBuilder
ve 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
StringBuilder
beklediğiniz şeyi yapamaz. Aynı gibi başka bir arayüz, gider List
veya 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 charSequence
veya null
değer döndüğünde faydalıdır .
charSequence
null ise , döndürülen dize olur "null"
ve olmaz null
.
setText(CharSequence)
ihtiyacınız olanı yapmıyor mu?