Từ câu trả lời của this question, bạn có thể thấy rằng nó có thể không phải là một lợi thế để bảo toàn các generics trong máy ảo, vì nó vẫn sẽ ra lệnh cho những gì có thể biểu diễn và quan hệ giữa các loại. (Để biết thêm chi tiết, hãy truy cập original blog bởi Ola Bini).
ví dụ khác:
Erasure có vẻ hữu ích không chỉ cho tương thích ngược, nhưng vì thời gian chạy hoàn chỉnh thông tin kiểu như được quảng cáo bởi các ngôn ngữ được nhập động được tính phí. Thiết kế của .NET CLR Generics giải quyết chi phí này bằng cách chuyên môn hóa mã. Các trường hợp trên phải rõ ràng khi nó được xóa và khi nó là ngôn ngữ được đổ lỗi cho một thiếu sót cụ thể.
Các net-net được rằng nếu JVM đã reified generics (không có loại tẩy xoá), nó sẽ không thể thực hiện hệ thống kiểu Scala của ... hệ thống kiểu Scala là phức tạp hơn so với Java và nếu JVM có generics dựa trên Generics Java, chúng ta vẫn có vấn đề trong Scala. Mặt khác, loại xóa bỏ cho phép trình biên dịch thực hiện một hệ thống kiểu phức tạp, ngay cả khi tất cả các thông tin kiểu không có sẵn khi chạy.
Theo như tôi biết Scala của .NET backend là xa phía sau việc thực hiện JVM hiện nay, và cũng không hỗ trợ .NET của reified generics.
Scala 2.10 thậm chí còn đi xa hơn theo hướng trừu tượng hóa thông tin loại từ mô hình máy ảo thực tế. Martin Odersky trình bày tương tác phản ánh/chỉnh sửa mới trong bản trình bày, ví dụ: embedded in this entry (bắt đầu từ 42'18 ").
Tôi tin rằng bạn sẽ có thể sử dụng thẻ loại (thay thế tệp kê khai) thành khắc phục các vấn đề với kết hợp mẫu và xóa, có một chút trên this mailing list thread, nhưng tôi không biết nó hoạt động ở mức độ nào hay không.
(Suy đoán thuần túy :) Sẽ giúp trừu tượng hơn có thể trợ giúp với các chương trình phụ trợ cho các nền tảng thậm chí có ít thông tin về loại hơn so với JVM, ví dụ như một trình biên dịch giả thiết cho JavaScript.
Nguồn
2012-07-23 13:50:11
M. Garcia có một [bài viết] liên quan (http://lampwww.epfl.ch/~ magarcia/ScalaNET/slides/TourCLRGenerics.pdf) và [cập nhật trạng thái] (http://lampwww.epfl.ch/~magarcia/ScalaNET/slides/2011-09-06-GenericsGettingCloser.pdf). Nhưng những thỏa thuận này với các chi tiết thực hiện; thật khó để có được bức tranh lớn. –