2012-12-19 26 views
9

Object.toString() javadoc diyor:Neden Java standart kitaplıkları toString yöntemlerini uygulamıyor?

nesnesinin dize temsilini döndürür. Genel olarak toString yöntemi, bu nesneyi "metinsel olarak temsil eden" bir dize döndürür. Yine

, çok yararlı bir toString() yöntemleri olabilir Collections (Kümeler, Listeler vb) gibi standart java sınıflarının kadar çok, uygulamadan rahatsız etmeyin. Bu aptallığın bir sebebi var mı?

Veya bunun yerine bir hex dizgisi ister misiniz? :)

DÜZENLEME: Hata! Bu, IDE kullanmada benim başarısızlığımdı. Uygulamanın yerine ara yüzü takip ettim ve bu da beni bir sebepten dolayı Object.toString()'a götürdü.

+0

İlgili: http://stackoverflow.com/q/2329168/334274 – Jivings

+1

Hangi koleksiyon sınıfları toString'i uygulamıyor? Bunların hepsini uyguladığını düşünüyorum (ArrayList, HashMap, HashSet) –

+0

Koleksiyonlar bir sınıftır, bu yüzden toString yöntemi için iyi bir sebep yok. Bu durumda, Toplama arabirimini, Java'daki tüm işlevler sanalysa, çoğu durumda geçersiz kılan uygulamadan toString çağrılır. – gregory561

cevap

6

UPD:

Eğer Collection sınıfları, cevap olacak kadar alçak olursa: Bu oldukça böyledir. Collection sınıflarının çoğu bu yöntemi geçersiz kılar; örneğin, tüm kalıtsal sınıflar için ortak olan kendi toString uygulamasına sahip AbstractCollection sınıfı.

Collection[s] kastediyorsanız, bu sınıfın özel kurucusu vardır ve başlatılamaz; çok özel toString yöntemi anlamsız.

+3

, bir arabirim olan Koleksiyon olmayan bir kullanım sınıfı olan Koleksiyonlardan bahsetmiştir. – gregory561

+1

@ gregory561, korkarım ki bu yazar bir yanlış baskı yaptı. – Andremoniy

+0

Bu durumda, Koleksiyon arabirimi Nesne'yi genişletmiyor/uygulamıyorsa, bir soru bir anlam ifade etmiyor mu? hangi toString yöntemine sahiptir. Yapmış olsa bile, bu yöntemi bir yüzeyde uygulamak imkansızdır. – gregory561

2

Collections sınıfı hakkında konuşuyorsanız, yardımcı program sınıfıdır, toString() yönteminin geçersiz kılınması gerekli değildir. Genel olarak, yardımcı sınıflar söz konusu olduğunda, kurucuları özel kılar ve statik yöntemler sunarız.

Ayrıca koleksiyon sınıfından bir nesne oluşturulamamış olup olmadığını kontrol edin. java.util.Collectionssource, Satır numarası 56

İlgili konular