Middle
Generics ne imkanlar sağlar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Genel (generikler) aşağıdaki avantajları sağlar:
- Kodun yeniden kullanımı: Farklı türlerdeki nesnelerle çalışabilen sınıflar, arayüzler ve metodlar oluşturma, tür güvenliğini kaybetmeden.
- Derleme zamanında tür güvenliği: Derleyici, tür kullanımının doğruluğunu kontrol edebilir ve tür dönüşümleriyle ilgili çalışma zamanı hatalarını önleyebilir.
- Kod okunabilirliğinin artırılması: Metod imzalarında ve sınıf bildirimlerinde açıkça belirtilen türler, kodun daha anlaşılır olmasını sağlar.
- Performans artışı (bazı dillerde): Türlerin silinmesiyle (örneğin Java) uygulanan dillerde, bu, çalışma zamanında tür dönüşümlerine gerek kalmadan sağlanır. Türlerin monomorfizasyonla (örneğin C++ şablonları) uygulandığı dillerde, bu kodun şişmesine neden olabilir, ancak potansiyel olarak dinamik çağrıları ortadan kaldırarak daha hızlı çalışmasını sağlar.
- Koleksiyonlarla uyumluluk: Koleksiyonlar üzerinde çalışmayı kolaylaştırır, içerdikleri öğelerin türünü belirtmeye olanak tanır.
Java örneği:
// Generics olmadan
List list = new ArrayList();
list.add("string");
// Çekme sırasında tür dönüşümü gerekir, olası ClassCastException
String s = (String) list.get(0);
// Generics ile
List<String> stringList = new ArrayList<>();
stringList.add("string");
// Tür dönüşümüne gerek yok, tür güvenliği garanti edilir
String s2 = stringList.get(0);
// Uyumsuz tür eklemeye çalışırken derleme hatası
// stringList.add(123);
C# örneği:
// Generics olmadan
ArrayList list = new ArrayList();
list.Add("string");
// Çekme sırasında tür dönüşümü gerekir
string s = (string)list[0];
// Generics ile
List<string> stringList = new List<string>();
stringList.Add("string");
// Tür dönüşümüne gerek yok
string s2 = stringList[0];
// Derleme hatası
// stringList.Add(123);