Tôi biết câu hỏi này có thể sẽ gây nhiều tranh luận hơn các câu trả lời cụ thể (mà tôi biết là không thích hợp hơn). Nhưng với việc mua lại gần đây của Oracle, tôi đã tự hỏi liệu có bất kỳ từ nào mà Java có thể (một ngày nào đó) có được các Generics được đổi mới không? Tôi đã nghe nói rằng Oracle muốn cung cấp cho Java một chút thúc đẩy, và tôi có thể nghĩ không có cách nào tốt hơn.Bất kỳ từ nào về generics đã được chỉnh sửa trong Java?
Trả lời
Có một bài viết hay về thảo luận về generics đã được sửa đổi, here, mà bạn nên đọc liên quan đến Java. Về cơ bản nó phác thảo một số những cạm bẫy có thể xảy ra với sự ra đời của một sự thay đổi như vậy. Đó là khá tàn bạo cho khả năng tương thích ngược khi bạn nghĩ về nó. Chọn nó lên trên Hacker News nếu bạn đang tự hỏi nó đến từ đâu.
Hãy biết ơn rằng có nói chuyện về adding closures với Java. Không còn phải vất vả thông qua chỉ với những thứ như Functional Java và ilk của chúng (không phải những điều này là xấu, ngược lại.)
Tôi không biết về tương lai ngoài Java 7 nhưng có vẻ như Reified Generics sẽ không trong Java 7 (và nếu Oracle muốn cung cấp cho Java một chút thúc đẩy, họ nên bắt đầu với việc phát hành Java 7).
Trái ngược với những gì hầu như mọi người đều tin, có thể tạo lại Generics trong Java, điều này có nghĩa là việc xóa loại có thể tránh được. Trên thực tế, nó là một thủ thuật hoặc ma thuật đen tối tinh khiết nếu bạn muốn.
Tôi đã viết một bài báo về vấn đề này tại
http://rgomes-info.blogspot.co.uk/2013/12/using-typetokens-to-retrieve-generic.html
Trong phần cuối của bài viết có một phần về ưu và nhược điểm của thủ thuật này. Trên thực tế, điều chính xác sẽ có "Generics" hợp nhất Generics trong Java và không phải là một lừa như thế này ... nhưng tiếc là đây không phải là trường hợp.
+1 vì bài viết thú vị, nhưng có một lớp học toàn bộ những thứ bạn có thể làm với các generics đã được chỉnh sửa mà bạn không nhận được từ việc chỉ đơn giản là chuyển loại xung quanh. Đúng là các Generics có thể tái tạo được với một chút ma thuật tạo mã, và, cho rằng asm giống như điều tuyệt vời nhất, tôi không thể giải thích tại sao hầu hết mọi người không cho nó đi. – CurtainDog
- 1. Bất kỳ ai biết về bất kỳ mẫu T4 nào để tạo các lớp từ xsd?
- 2. Bất kỳ ai biết về bất kỳ ngôn ngữ kịch bản được nhập tĩnh nào?
- 3. NSTableXem cách nhấp vào bất kỳ vị trí nào trong ô để chỉnh sửa văn bản?
- 4. Bất kỳ hướng dẫn nào về libclang?
- 5. Gọi bất kỳ phương thức Java nào từ C#
- 6. Nhấp vào bất kỳ nơi nào trên hàng GridView để vào chế độ chỉnh sửa
- 7. Java: Nhận số tuần từ bất kỳ ngày nào?
- 8. Có bất kỳ trình chỉnh sửa javascript nào bảo toàn ngắt dòng không?
- 9. Java Vòng lên Bất kỳ Số nào
- 10. Django. Bạn không có quyền chỉnh sửa bất kỳ nội dung nào
- 11. cách từ chối bất kỳ cụm từ thông dụng nào trong Java
- 12. Java hoặc bất kỳ ngôn ngữ nào khác: Phương thức/lớp nào đã gọi cho tôi?
- 13. Bất kỳ trình chỉnh sửa thẻ mã nguồn mở nào, giống như của SO?
- 14. Bất kỳ hướng dẫn nào về mã hóa khóa công khai trong java?
- 15. Sử dụng ImageSearchDll.dll trong Java (từ AutoIt) chỉnh sửa: JNA
- 16. Bất kỳ hướng dẫn nào về cách sử dụng phpDocumentor?
- 17. Tài nguyên để học về Generics Java?
- 18. Có bất kỳ trình chỉnh sửa thay thế nào cho tệp .m không?
- 19. Bất kỳ VI nào thích trình chỉnh sửa dưới cửa sổ?
- 20. PreparedStatement.addBatch trong java có bất kỳ hạn chế nào không?
- 21. Có bất kỳ biến trừu tượng nào trong java không?
- 22. Tại sao bất kỳ chương trình Java/Clojure nào bị chậm lại khi chạy từ Leiningen?
- 23. Có bất kỳ dự án được tài liệu nào mà CouchDB đã được thử và từ chối không?
- 24. Bất kỳ nghiên cứu điển hình nào về Orchard CMS đã biết?
- 25. Java Generics và các kiểu trả về
- 26. Cần bất kỳ ví dụ nào về UILocalNotifications
- 27. Làm cách nào để chỉnh sửa thông báo cam kết của bất kỳ cam kết nào trong git?
- 28. Java: Nhận bất kỳ ngày nào trong một tuần từ Lịch
- 29. XDocument.Descendants() không trả về bất kỳ phần tử nào
- 30. Có bất kỳ từ dành riêng nào trong SQLite không?
Sigh ... Đó là một điều tốt Sun/Oracle không chịu trách nhiệm xây dựng đường cao tốc của quốc gia này. Họ sẽ ủy thác một làn đường ngựa và ngựa với chi phí của một làn đường cao tốc. (Xin lỗi - Tôi biết đó không phải lỗi của bạn. :-P) – nonoitall
Để ăn cắp ý tưởng từ adams douglas: việc thêm bao đóng vào java giống như vẽ một bánh xe để làm cho nó hoạt động nhanh hơn. – CurtainDog
Việc thêm bao đóng vào Java giống như thêm vô lăng vì mọi người muốn có thể dễ dàng biến ngựa và xe của họ. –