SORU
27 NİSAN 2010, Salı


Neden't Jenerik Java ilkel türleri desteklemez?

Neden Java Jenerik nesneleri ile çalışmak ama ilkel türler ile değil?

Örneğin

Gen<Integer> inum = new Gen<Integer>(100); // works fine, but  
Gen<int> inums = new Gen<int>(100); // is not allowed.   

CEVAP
27 NİSAN 2010, Salı


Java jenerik bir derleme oluşturmak derleyici tüm jenerik kullanır döner doğru türde yayınları için tamamen bir. Bu önceki JVM çalışma zamanları ile geriye dönük uyumluluk sağlamak için.

Bu:

List<ClassA> list = new ArrayList<ClassA>();
list.add(new ClassA());
ClassA a = list.get(0);

(kabaca) haline gelir

List list = new ArrayList();
list.add(new ClassA());
ClassA a = (ClassA)list.get(0);

Yani, jenerik olarak kullanılan herhangi bir şey Nesne için convertable (bu örnekte get(0) Object bir döner) ve ilkel türler değil. Jenerik olarak kullanılabilir.

Ayrı bir konu C# - jenerik doğrudan çalışma zamanı, bu kadar ilkel bir tür bir parçası olarak uygulanırolabilir- CLR kullanıldıkları gibi temel öğeler ve yapılar için genel sınıflar yeni sürümlerini oluşturur. Tek dezavantajı (kadar .4 NET) genel kovaryans veya contravariance izin verildi, Java (genel tanımlar super extends kelimeleri görmek) aksine

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AĞUSTOS 2013
  • Hot For Nutrition

    Hot For Nutr

    26 ŞUBAT 2007
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006