この質問は、おそらく具体的な回答よりも多くの議論を引き起こすことを私は知っています (私はそれが好ましくないことを知っています)。しかし、Oracle による最近の買収により、Java が (いつか) ジェネリックを具体化する可能性があるという言葉があったかどうか疑問に思っていました。Oracle が Java を少し強化したいと考えていると聞いたことがありますが、これ以上の方法は思い浮かびません。
3 に答える
Java に関して読むべき、具体化されたジェネリックの議論に関する良い記事があります。基本的に、このような変更の導入で発生する可能性のあるいくつかの落とし穴について概説しています。あなたがそれについて考えるとき、それは下位互換性にとってかなり残忍です。どこから来たのか知りたい場合は 、 Hacker Newsで取り上げました。
Javaにクロージャを追加するという話があることに感謝します。Functional Javaやその同類のようなものだけで苦労する必要はもうありません(逆に、これらが悪いというわけではありません)。
Java 7 以降の将来についてはわかりませんが、Reified GenericsはJava 7には含まれないようです(もし Oracle が Java を少し強化したいのであれば、Java 7 のリリースから始めるべきです)。
ほとんどの人が信じていることとは反対に、Javaではreified Genericsが可能です。つまり、型消去を回避できます。実際、あなたがそうするなら、それはトリックまたは純粋な黒魔術です。
私はこれについての記事を書いています
http://rgomes-info.blogspot.co.uk/2013/12/using-typetokens-to-retrieve-generic.html
記事の最後に、このトリックの長所と短所に関するセクションがあります。実際、正しいことは、Javaで「適切な」具体化されたジェネリックを使用することであり、このようなトリックではありません...しかし、残念ながら、そうではありません。