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

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • MW Technology

    MW Technolog

    28 EKİM 2009
  • vgeller1

    vgeller1

    22 Kasım 2009