Apakah secara teknis itu mungkin? Jika itu akan diterapkan di Jawa, saya akan mengatakan "sangat, sangat sulit, tetapi mungkin" tanpa kehilangan kinerja yang signifikan.
Saya sebenarnya menulis DSL yang diketik secara statis di Jawa saat ini, dan satu-satunya cara yang saya temukan untuk menghindari pengecekan tipe runtime adalah dengan menggunakan obat generik dan menekan peringatan "tidak dicentang" ... yaitu, sampai saatnya tiba untuk mengimplementasikan array multi-dimensi (parameter kelas harus diketahui pada waktu kompilasi dan karenanya secara inheren terbatas, sedangkan array multi-dimensi mewakili jumlah jenis yang tak terbatas ...) Masih mencoba mencari yang satu ini, sayangnya - saya yakin saya akan mengalami masalah serupa dengan kelas yang ditentukan pengguna.
Masalahnya, saya terus menemukan masalah seperti ini, tetapi setelah duduk sebentar, saya menemukan solusi yang bagus. Jadi, untuk melakukannya dan memiliki manfaat kinerja pengetikan statis (tidak ada pengecekan tipe runtime), saya akan mengatakan itu sangat sulit, tetapi bukan tidak mungkin. Minus kinerjanya, saya katakan keras tapi sangat mungkin.
Saya tahu ini pertanyaan lama, hanya berpikir pengalaman saya mungkin berharga bagi seseorang.