2008-09-22 14 views
19

¿Alguien sabe si los cierres estarán en Java 7?¿Cuál es el estado actual de los cierres en Java?

+2

Parece que los cierres están de vuelta: http://puredanger.com/tech/2009/11/18/closures-after-all/ – trunkc

+1

oh Java, solías ser tan genial, ¿qué pasó? – maerics

+0

Votaré para cerrar con una pregunta más nueva, ya que estará más actualizada con las funciones futuras: posible duplicación de [Cierre en Java 7] (http://stackoverflow.com/questions/5443510/closure-in-java -7) – nawfal

Respuesta

19

Se desconoce hasta que se crea el Java SE 7 JSR (presumiblemente por Danny Coward) y se forma un grupo de expertos y se seleccionan los contenidos.

Mi Java página 7 es una buena colección de enlaces sobre Java 7 en general y tiene enlaces a todas las propuestas cierres y entradas de blog:

http://tech.puredanger.com/java7#closures

Y mantener un blog enlace de Java 7, donde se pueden encontrar enlaces en los cierres y otras cosas en:

http://java7.tumblr.com

y es posible encontrar mi Java 7 Predicciones entrada de blog para ser interesante, así que si quieres mis opiniones: http://tech.puredanger.com/2008/08/02/java7-prediction-update/

ACTUALIZACIÓN: Mark Reinhold declaró en Devoxx en diciembre de 08 que los cierres NO se incluirán en Java 7 debido a la falta de consenso sobre cómo implementar.

+0

Excelentes enlaces, gracias por su trabajo! – trunkc

7

Actualmente hay varias propuestas en competencia, BGGA, CICE, entre otras. Desafortunadamente, sigue habiendo un acalorado debate sobre el mejor enfoque. Como resultado, es poco probable en este punto que los cierres lo conviertan en Java 7, debido a la naturaleza conservadora del proceso de aceptación.

El problema clave aquí es que puede ser muy difícil agregar funciones a un idioma preexistente, sin introducir inadvertidamente una complejidad significativa. Esta fue la experiencia con Generics en Java 1.5, y a muchos les preocupa que se agravaría con la introducción de cierres.

Mi consejo es que si realmente quiere tener acceso a funciones de lenguaje moderno como cierres, pero desea permanecer dentro del ecosistema de Java, debería echar un vistazo al Scala.

+0

Groovy también admite cierres. –

+0

+1: Estoy totalmente de acuerdo: agregar cierres haría que el lenguaje fuera más complejo y si uno realmente quiere usarlos, uno puede usar Scala. – Giorgio

3

Groovy es la mejor alternativa de Java que he visto que incluye características de lenguajes dinámicos que incluyen cierres, extensión de clase en tiempo de ejecución, etc. Aunque Ruby tiene una ligera ventaja en el diseño, tengo que decir que Groovy compila en Java byte-code e interactúa con Java sin CUALQUIER código de interfaz es una gran ventaja que no se puede ignorar.

http://groovy.codehaus.org

2

Al parecer cierres no habrá en Java 7. Ver this y this.

1

de cierre no será definitivamente presente en Java 7, pero si usted está buscando una solución más ligera para que cierre en java en este momento echa un vistazo a la forma en que se han implementado en la biblioteca lambdaj:

http://code.google.com/p/lambdaj/wiki/Closures

Cuestiones relacionadas