Ini adalah pertanyaan dari perspektif internal kompiler.
Saya tertarik pada obat generik, bukan template (C ++), jadi saya menandai pertanyaan dengan C #. Bukan Java, karena AFAIK generik dalam kedua bahasa berbeda dalam implementasinya.
Ketika saya melihat bahasa tanpa generik, itu sangat mudah, Anda dapat memvalidasi definisi kelas, menambahkannya ke hierarki dan hanya itu.
Tetapi apa yang harus dilakukan dengan kelas generik, dan yang lebih penting bagaimana menangani referensi untuk itu? Cara memastikan bahwa bidang statis adalah singular per instance (yaitu setiap kali parameter generik diselesaikan).
Katakanlah saya melihat panggilan:
var x = new Foo<Bar>();
Apakah saya menambahkan Foo_Bar
kelas baru ke hierarki?
Pembaruan: Sejauh ini saya hanya menemukan 2 posting yang relevan, tetapi bahkan mereka tidak masuk ke banyak detail dalam arti "bagaimana melakukannya sendiri":