¿De qué manera los cierres en Java permitirá el diseño de la API para reemplazar el diseño de lenguajes?

StackOverflow https://stackoverflow.com/questions/4764539

  •  16-10-2019
  •  | 
  •  

Pregunta

Me puede ver algunos de los beneficios de los cierres, tales como la forma en que pueden tener su lugar en la simplificación de las bibliotecas existentes y hacer algún diseño futuro más fácil y más eficiente.

Sin embargo, uno de los puntos clave mencionados en el proyecto de propuesta (http://www.javac.info/consensus-closures-jsr.html) está en la sección 2.5, punto e:

(La especificación mejorará el idioma)

e) para el posterior diseño de API para reemplazar el diseño de lenguajes para la ampliación de la plataforma Java.

estoy luchando para ver cómo este es el caso, sin duda el diseño del lenguaje es sólo eso - el diseño del lenguaje en sí mismo, y no puede ser sustituida por una API de Java a menos que abre todo tipo de API extraños utilizando cierres de la modificación de la lengua (que me altamente duda va a suceder.)

¿Alguien puede arrojar algo de luz sobre esto y tal vez son un ejemplo de algo que requiere un cambio de idioma anteriormente pero, con la adición de cierres, ya no requiere una?

¿Fue útil?

Solución

características

diseño de la API y el lenguaje son definitivamente intercambiables en algunos puntos. Basta con mirar a algo parecido a la palabra clave sincronizada en Java. Es una palabra clave, pero podría también ser implementado como una API si el idioma era suficientemente no detallado. Las anotaciones son otro ejemplo. El revés @Stateless una anotación que hace que todos los métodos en una clase de transacciones, también podría haber sido una palabra clave del lenguaje.

Cierres en particular, hacen que sea fácil para entregar un "bloque de código" a un método, lo que podría hacer algo con eso.

Un ejemplo crudo, una para cada podría hacerse:

for_each(myFooList, #(Foo foo) { 
   String something = foo.getBar() + foo.getKaz();
   System.out.println(something);
});

Tal vez no al 100% tan limpia como la que tiene para cada lazo directamente apoyado por la sintaxis de la lengua, pero permite que cada uno fácilmente la experiencia con el lenguaje-como mejoras.

Otros consejos

Para cualquier persona que no haya leído el proyecto de propuesta, aquí es un poco más detalle a partir más tarde en el mismo documento:

La adición de cierres simplifica la evolución de la plataforma Java. Muchos RFE de lenguaje existentes en la base de datos pública de bugs de Sun pueden reorientarse como solicitudes de API para métodos que reciben cierres . Muchas necesidades futuras de formularios de declaración adicional en lugar pueden ser satisfechas por la adición de métodos de biblioteca.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top