¿Cuál es el estado actual de las especificaciones para el cierre de Java?Tipos, variables, matrices y colecciones de cierre de Java
En la especificación de Java cierre propuesto, habría que ser capaz de crear una matriz o colección de cierres?
En caso afirmativo, ¿sería posible esta sintaxis?{int x, int y => boolean b}[] comparisonSwitch = { {int i, int j => return i>j}, {int i, int j => return j<i}, {int i, int j => return j==i} } boolean compare(int acase, int a, int b){ return comparisonSwitch[acase].invoke(a,b); }
¿Se considerarían los métodos normales como cierres no anónimos?
Entonces, ¿sería posible la siguiente sintaxis?public class Asdf { public boolean gt(int x, int y){ return x>y; } public boolean lt(int x, int y){ return x<y; } public boolean eq(int x, int y){ return x==y; } {int x, int y => boolean b} GT = gt; {int x, int y => boolean b}[] comparisonSwitch = { gt, lt, eq } }
es decir, son cierres y métodos interchangeble operacionalmente?
¿Se permitiría la siguiente sintaxis?// declare a method that has a closure type as an argument void closurator({String s => int a} findlen){ // do whatever } String s = "hello"; void useClosurator(){ // invoke the method by supplying a non-anonymous method // of an object closurator(s.indexOf(String ss)); }
¿Cómo podemos ser capaces de especificar un tipo de cierre en una interfaz?
Podríamos hacer lo siguiente, declarando de manera efectiva la referencia final/constante a los métodos.interface Closuration { public class Asdf { static public boolean gt(int x, int y){ return x>y; } static public boolean lt(int x, int y){ return x<y; } static public boolean eq(int x, int y){ return x==y; } } {int x, int y => boolean b}[] comparisonSwitch = { Asdf.gt, Asdf.lt, Asdf.eq }; }
Desde cierres tendrían acceso a espacio de código, al igual que la reflexión sería, usaría el cierre de ralentizar el rendimiento de un programa? De lo contrario, ¿significaría que la reflexión se aceleraría mediante los avances de los préstamos realizados en la "tecnología de cierre"?
inserta el nuevo pregunta: En realidad, habría código de cierre de formar parte del espacio de código o en el montón de variables, porque yo estoy prediciendo que el código de cierre sería susceptible de ser borrado por la recolección de basura, ¿verdad?
¿Puedo solicitar que se concentre en la esencia de las preguntas, no en cualquier sintaxis errores/errores tipográficos/palabras clave que faltan en el código de ejemplo. Cualquier error tipográfico/error, por favor corrígemelo. Gracias.
Si alguno de ustedes es un poco demasiado impaciente para cerrar esta pregunta como "no es una pregunta real", por favor lea mi autocompromiso en http://stackoverflow.com/questions/2198734/demonstrate-prove-hat -heap-sort-is-on-log2n-time-closed: Esto no es tarea. Programador antiguo de 50 años que necesita ayuda honesta para tomar algunas decisiones estratégicas. –
¿Se trata de la pregunta sobre la propuesta de cierre de Neal Gafter o las lambdas actualmente en discusión? –
Se está preparando el proyecto actual Lambda: borrador de especificación del lenguaje Java 0.1 http://mail.openjdk.java.net/pipermail/lambda-dev/attachments/20100122/3764c21a/attachment.txt Versión 0.2. –