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

  • Kassem G

    Kassem G

    25 EKİM 2006
  • Ralph Phillips

    Ralph Philli

    5 Aralık 2006
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006