SORU
10 AĞUSTOS 2010, Salı


Neden hiçbir Dize yoktur.Java boş?

Ben yazın dize "", Aynı Dize nesne her zaman dize havuzu başvurulan anlıyorum.

Ama neden Dize API String.Empty başvurular kullanabilirim ** 3, bir o kadar da kapsamıyor mu?

Derleyici referans için mevcut Dize bilemez beri derleme zamanı, en azından tasarruf olur, ve eğer zaten yeniden yaratılmış diye kontrol etmek zorunda değil, değil mi? Ve kişisel olarak birçok durumda dizelerini, özellikle küçük olanları bir başka gelişme de, bence bir "kod koku".

Böyle bir Dize arkasında Büyük bir Tasarım Neden.Boş, ya da dil yaratıcıları sadece kendi görüşlerimi paylaşmak değil mi?

CEVAP
10 AĞUSTOS 2010, Salı


String.EMPTY 12 karakter ve "" iki ve her ikisi de tam zamanında bellekte aynı örnek referans olacaktır. Tamamen String.EMPTY derleme zamanında kurtarmak olurdu neden emin değilim, aslında ikincisinin olacağını düşünüyorum.

Özellikle dikkate Strings sabit değil gibi ilk elde boş bir Dize, ve bazı işlemleri gerçekleştirmek - en iyi şekilde kullanmak StringBuilder (ya da StringBuffer olmak istiyorsan bu iş parçacığı güvenli) ve çevirmek o içine bir Dize.

Güncelleme
Bu soru için yorumunuz:

Bu aslında ne ilham kaynağı oldu. TextBox.setText("");

Tamamen meşru uygun sınıf: sabit sağlamak için doğru olacağını düşünüyorum

private static final String EMPTY_STRING = "";

Ve sonra kodunuzda olarak referans olarak

TextBox.setText(EMPTY_STRING);

Bu şekilde en azından boş bir Dize yerine, Dize doldurmak için IDE unuttun ya da ona benzer bir şey istediğiniz açık.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • Willie D.

    Willie D.

    16 Aralık 2006