2010-07-29 7 views
8

Sé que esta pregunta probablemente provocará más discusión que respuestas concretas (que sé que no es preferible). Pero con la reciente adquisición de Oracle, me preguntaba si ha habido alguna palabra de que Java podría (algún día) obtener genéricos reificados. He oído que Oracle quiere darle un poco de impulso a Java, y no puedo pensar en una mejor manera.¿Alguna palabra sobre genéricos reificados en Java?

Respuesta

3

Hay un buen artículo sobre la discusión de genéricos reificados, here, que debe leer en lo que respecta a Java. Básicamente, describe algunas de las trampas que pueden ocurrir con la introducción de dicho cambio. Es bastante brutal para la compatibilidad con versiones anteriores cuando lo piensas. Lo recogió en Hacker News si se pregunta de dónde vino.

Agradezca que se hable de adding closures a Java. No más tener que atravesar con solo cosas como Functional Java y su tipo (no es que estas fueran malas, por el contrario.)

+0

Suspiro ... Es una suerte que Sun/Oracle no estén a cargo de la construcción de las autopistas de esta nación. Obligarían a un carril con carritos de caballos a expensas de un carril exprés. (Lo siento, sé que no es tu culpa. :-P) – nonoitall

+1

Para robar una idea de douglas adams: agregar cierres a java es como pintar una rueda para que sea más rápido. – CurtainDog

+0

Agregar cierres a Java es como agregar un volante porque las personas querían poder cambiar fácilmente su caballo y su buggy. –

2

No sé sobre el futuro más allá de Java 7 pero parece que Reified Generics no será en Java 7 (y si Oracle quiere dar un poco de impulso a Java, deberían comenzar con la liberación de Java 7).

1

Al contrario de lo que casi todos creen, los genéricos reificados son posibles en Java, lo que significa que se puede evitar el borrado de tipos. En realidad, es un truco o magia oscura pura si quieres.

He escrito un artículo sobre esto en

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

En el final del artículo hay una sección sobre pros y contras de este truco. En realidad, lo correcto sería tener Genéricos reificados "apropiados" en Java y no un truco como este ... pero desafortunadamente este no es el caso.

+0

+1 por el interesante artículo, pero hay toda una clase de cosas que podrías hacer con genéricos reificados que no obtienes simplemente pasando el tipo. Los verdaderos genéricos reificados son posibles con un poco de magia de generación de código, y, dado que el asm es lo más genial que haya existido, no puedo explicar por qué la mayoría de las personas no lo intentan. – CurtainDog