Java generics'te "type erasure" (tip silinmesi) en iyi hangisiyle tanımlanır?
- aDerleyici her tip argümanı için ayrı özelleşmiş bir sınıf üretir, C++ template'lerine benzer şekilde.
- bDerleyici generic tipleri derleme zamanında kontrol eder, ardından tip parametresi bilgisini siler; bu bilgi çalışma zamanı bytecode'unda bulunmaz.✓
- cJVM, generic tip parametrelerini runtime'da kontrol eder ve uyuşmazlıkta hata fırlatır.
- dDerleyici tam tip argümanını bytecode metadata'sı olarak saklar, böylece reflection her zaman doğrudan okuyabilir.
Açıklama:Java generics, type erasure ile uygulanır: derleyici derleme zamanında tip güvenliğini denetler, ardından tip parametrelerini siler ve üretilen bytecode'da bunların yerine sınırlarını (ya da Object'i) koyar. Bu yüzden generic tip bilgisi çoğunlukla runtime'da mevcut değildir.