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

  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • TheFlightsuit

    TheFlightsui

    22 HAZİRAN 2009
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007