Sobes.tech
Middle

Generics nedir ve ne amaçla kullanılırlar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Genel (generics), programlama dillerinde, belirli bir veri tipi önceden bilinmeden farklı veri tipleriyle çalışan sınıflar, arayüzler ve metodlar oluşturmayı sağlayan bir mekanizmadır.

Kullanım alanları:

  1. Tür Güvenliğinin Artırılması (Type Safety): Derleyici, derleme sırasında veri tiplerini kontrol eder ve yalnızca çalışma zamanında (Runtime Errors) ortaya çıkabilecek hataları önler.

    // Generics olmadan örnek - potansiyel hata
    List list = new ArrayList();
    list.add("string");
    list.add(123); // Herhangi bir tip eklenebilir
    String s = (String) list.get(1); // Çalışma zamanında ClassCastException hatası
    
  2. Kodun Yeniden Kullanılabilirliği: Aynı kod, her tip için ayrı versiyonlar yazmaya gerek kalmadan farklı veri tipleriyle çalışabilir.

    // Generics ile örnek - güvenli kullanım
    List<String> list = new ArrayList<>(); // String tipi belirtildi
    list.add("string");
    // list.add(123); // Derleyici hata verecek - int eklenemez
    String s = list.get(0); // Tip dönüşümüne gerek yok
    
  3. Kodun okunabilirliğinin artırılması: Veri tiplerinin açıkça belirtilmesi, kodun hangi verilerle çalıştığını anlamaya yardımcı olur.

  4. Performans optimizasyonları: Bazı dillerde (örneğin, C#), generics, temel veri tipleri (örneğin, Object) kullanımıyla karşılaştırıldığında daha iyi performans sağlayabilir, çünkü boxing/unboxing gerekmez.

Örneğin, çoğu dilde kullanılan standart koleksiyonlar (listeler, kümeler, haritalar), herhangi bir tipteki öğelerle çalışmak için generics kullanır, bu da güvenlik ve kullanım kolaylığı sağlar.

Generics olmadan Generics ile
Object tipleriyle çalışır Belirli tiplerle çalışır
Tip dönüşümü gerektirir Tip dönüşümüne gerek yok
Tip hataları çalışma zamanında tespit edilir Tip hataları derleme zamanında tespit edilir
Daha az okunabilir kod Daha okunabilir kod