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

  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • TomSka

    TomSka

    30 Mayıs 2006