¿Cuál es el problema con el operador lamda "->" cuando se codifica en Groovy?

Jugando con un JavaFX escribo esto:

    MenuItem menuItem1 = new MenuItem("Item 1")
    menuItem1.setOnAction(e -> {
        println "Menu Item 1 Selected"
    })

Esto da un error en Eclipse: "Groovy: esperando ')' encontrado '->'"

    MenuItem menuItem1 = new MenuItem("Item 1")
    menuItem1.setOnAction({ e -> 
        println "Menu Item 1 Selected $e"
    })

Esto funciona bien Como hace esto:

    menuItem1.onAction = { e ->
        println "Menu Item 1 Selected $e"
    }

La primera es la forma en que lo harías en Java8 +. ¿Por qué dice Groovy que eso es ilegal, y hay alguna diferencia en términos de uso o alcance de la variable een las dos / tres formas de hacer las cosas?

Respuesta 1

Contexto: en una aplicación de tarjeta de memoria flash, tengo una vista para CardData (una estructura de datos que representa un lado de una tarjeta de memoria flash). Tiene, en su forma más básica, un texto de cadena. La vista (conocida como ...

Actualmente estoy haciendo una tarea para mi curso de acceso en informática. A continuación he capturado el proyecto para contextos. Nuestro maestro nos dio fragmentos de codificación para comenzar. En este caso, nos dio ...

Digamos que tengo una clase con tres constructores, como el siguiente: public class ExampleClass {// constructor # 1 public ExampleClass (int a) {this (a, "aaa"); // "aaa" es solo un ...

Tengo un directorio de archivos de registro comprimidos basados ​​en texto, cada uno con muchos registros. En versiones anteriores de Hadoop, ampliaba MultiFileInputFormat para devolver un RecordReader personalizado que descomprimía ...