2010-07-29 26 views
8

我知道這個問題可能會引發更多的討論比具體的答案(我知道是不可取的)。但是,最近甲骨文收購了我,想知道是否有人會說Java可能(有一天)會獲得泛化的泛型?我聽說Oracle希望給Java帶來一些啓發,我想不出更好的辦法。關於Java中的泛化泛型的任何說法?

回答

3

在關於泛化泛型的討論中有一篇很好的文章,您應該閱讀關於Java的文章here。基本上它概述了引入這種變化可能發生的一些陷阱。當你考慮它時,向後兼容是相當殘酷的。如果您想知道它來自哪裏,請在Hacker News上挑選它。

請注意,有關於Java的adding closures的討論。沒有更多不得不通過只有像Functional Java和他們的同類(不是說這些不好,相反,而不是隻有東西)

+0

嘆息...... Sun/Oracle並不負責建設這個國家的高速公路。他們會以犧牲快速車道爲代價來強制馬車。 (對不起 - 我知道這不是你的錯。:-P) – nonoitall 2010-07-29 04:47:14

+1

爲了從道格拉斯亞當斯那裏竊取一個想法:向java添加閉包就像繪製一個輪子使其更快。 – CurtainDog 2011-01-14 07:12:42

+0

向Java添加閉包就像添加一個方向盤,因爲人們希望能夠輕鬆地轉動他們的馬車。 – 2012-07-23 05:53:08

2

我不知道超越Java 7的未來,但它看起來像Reified Generics將不會在Java 7中(如果Oracle想讓Java有點提升,他們應該從發佈Java 7開始)。

1

與幾乎所有人都認爲的相反,泛化泛型在Java中是可能的,這意味着可以避免類型擦除。事實上,如果你願意的話,它是一種詭計或純粹的黑暗魔法。

我寫這個文章在

http://rgomes-info.blogspot.co.uk/2013/12/using-typetokens-to-retrieve-generic.html

在文章的結尾有這一招的優點和缺點的部分。 其實,正確的事情是在Java中具有「適當的」泛化泛型,而不是像這樣的技巧......但不幸的是,事實並非如此。

+0

+1,因爲有趣的文章,但是有一整類你可以使用泛化泛型來做的事情,你不能從簡單的類型中獲得。真正的物化泛化是可能的,帶有一些代碼生成的魔力,並且,鑑於ASM是有史以來最酷的事物,我無法解釋爲什麼大多數人不會放棄它。 – CurtainDog 2011-01-14 07:09:54