Generics Nedir? Tür Güvenliği ile Kod Yeniden Kullanımı
Generics, bir fonksiyon, sınıf ya da veri yapısını yazarken türü (type) önceden belirlemek yerine, kullanılırken belirtme imkanı veren bir özelliktir. Böylece aynı kodu farklı veri türleriyle çalıştırabilirsin; hem tekrar yazma işinden kurtulursun hem de tür güvenliğini kaybetmezsin.
Örneğin bir liste oluşturduğunda, içine ne koyacağını başta söylemek yerine, listeyi kullanırken karar verebilirsin. Bu sayede derleyici (kodu çalıştırılabilir hale getiren araç) yanlış türde veri eklemeyi engeller ve hatayı daha erken yakalar.
Java'da generics şöyle kullanılır:
1List<String> isimler = new ArrayList<String>();2isimler.add("Ali");3isimler.add("Ayşe");4// isimler.add(123); // Hata: Integer eklenemez56List<Integer> sayilar = new ArrayList<Integer>();7sayilar.add(10);8sayilar.add(20);Aynı ArrayList sınıfı hem String hem Integer ile çalıştı, ama her birinin içindeki tür belli oldu. Eğer generics olmasaydı, listeye her türden veri ekleyebilirdin; bu da çalışma sırasında hatalara yol açabilirdi.
C# ve TypeScript'te de benzer mantı çalışır. TypeScript'te bir fonksiyon yazarken:
1function ilkElemani<T>(dizi: T[]): T {2return dizi[0];3}45const str = ilkElemani<string>(["merhaba", "dünya"]);6const num = ilkElemani<number>([1, 2, 3]);Burada T bir yer tutucu; fonksiyon çağrılırken gerçek tür belirleniyor. Kod yazarken esnek kalırsın, ama çalıştırırken güvenlik sağlanır.
Generics kullanmanın faydası: kod tekrarını azaltır, hataları erkenden yakalar ve kodun okunabilirliğini artırır. Özellikle büyük projelerde veri yapıları, kütüphaneler ve API'ler generics sayesinde daha güvenli ve esnek olur.
0 yorum