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

  • eurotuner

    eurotuner

    6 Mart 2006
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012
  • Tom Megalis

    Tom Megalis

    18 NİSAN 2006