Любое слово об усовершенствованных дженериках в Java?
Я знаю, что этот вопрос, вероятно, вызовет больше дискуссий, чем конкретных ответов (что, я знаю, не является предпочтительным). Но с недавним приобретением Oracle мне стало интересно, есть ли какое-нибудь слово, что Java может (когда-нибудь) получить переработанные дженерики? Я слышал, что Oracle хочет немного улучшить Java, и я не могу придумать лучшего пути.
3 ответа
Здесь есть хорошая статья о обсуждении обобщенных обобщений, которую вы должны прочитать в отношении Java. По сути, в нем изложены некоторые подводные камни, которые могут возникнуть при введении такого изменения. Это довольно жестоко для обратной совместимости, когда вы думаете об этом. Поднимите это на Hacker News, если вам интересно, откуда он взялся.
Будьте благодарны, что есть разговоры о добавлении замыканий в Java. Больше не нужно ломать голову только с такими вещами, как функциональная Java и тому подобное (не то, чтобы это было плохо, наоборот.)
Я не знаю о будущем, выходящем за пределы Java 7, но похоже, что Reified Generics не будет в Java 7 (и если Oracle хочет дать Java некоторую поддержку, они должны начать с выпуска Java 7).
Вопреки тому, во что верят почти все, в Java возможна усовершенствованная Generics, что означает, что можно избежать стирания типов. На самом деле, это трюк или чистая темная магия, если хотите.
Я написал статью об этом в
http://rgomes-info.blogspot.co.uk/2013/12/using-typetokens-to-retrieve-generic.html
В конце статьи есть раздел о плюсах и минусах этого трюка. На самом деле правильной вещью было бы иметь "правильную" обобщенную обобщенную информацию в Java, а не хитрость, подобную этой... но, к сожалению, это не так.