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
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 String
s 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.
Neden hiçbir Char yoktur.Boş bir Dize ...
Neden char[] şifreler için Dize Java t...
Neden Java'In hashCode() Dize çar...
Neden Java Sanal Makinesi hiçbir GİL v...
CamelCase (hiçbir sözcük ayırıcı) tümü...