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ı:
-
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ı -
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 -
Kodun okunabilirliğinin artırılması: Veri tiplerinin açıkça belirtilmesi, kodun hangi verilerle çalıştığını anlamaya yardımcı olur.
-
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 |