Neden Java Koleksiyonları doğrudan İlkel türleri deposu değil mi?
Java koleksiyonlar deposu Nesneler, ilkel türleri; ancak sarıcı sınıflar saklayabilirsiniz.
Neden bu kısıtlama?
CEVAP
Java tasarım bir karar, ve bazı bir hata olduğunu düşün. Kaplar istiyorum Nesneleri ve ilkel Nesne türetmek yok.
Bu tek bir yerde .NET tasarımcılar boks gibi JVM ve hayata değer türleri ve jenerik öğrendim birçok durumda ortadan kalkar. CLR, genel bir kapsayıcı alttaki kabın yapısının bir parçası olarak değer türleri saklayabilirsiniz.
Java genel destek eklemek için JVM desteği olmadan derleyici 100% tercih etti. JVM ne olmak, "non-nesne" nesne. bir destek yok Java jenerik sen sarıcı yok gibi davranmak için izin, ama yine de boks performans fiyat ödemek. Bu programlar belirli sınıflar için ÖNEMLİDİR.
Boks teknik bir uzlaşma ve uygulama detay diline sızıntı olduğunu hissediyorum. Autoboxing güzel sözdizimsel şekerdir, ama hala bir başarım. Eğer bir şey, autoboxes zaman derleyici beni uyarmak istiyorum. (Bildiğim kadarıyla, şimdi, 2010 yılında bu cevap yazdım).
Boks hakkında ÇOK iyi bir açıklama: Why do some languages need Boxing and Unboxing?
Ve Java jenerik eleÅŸtiri: Why do some claim that Java's implementation of generics is bad?
Java savunması kolay geriye bakmak ve eleştirmek için. JVM zaman test dayanmış olan ve pek çok bakımdan iyi bir tasarım.
Neden't Jenerik Java ilkel türler...
Neden't Java Koleksiyonları yönte...
İnsanlar neden hala Java ilkel türleri...
Neden Java statik olarak bir sınıf bil...
Liste<Köpek> Listenin alt<Hay...