usar source only expressions expresiones explicacion ejemplos como are allowed above java eclipse lambda java-8

source - java 8 lambda explicacion



Java 8 Lambdas no funciona, aunque todo lo demás de Java 8 funciona (1)

Descubrí que Java 8 está oficialmente lanzado ahora. Parece que necesito Eclipse Luna 4.4 para que funcione. Así que descargué Luna y la instalé. También importé todos mis proyectos desde mi otro Eclipse, todo funcionó como se esperaba. Cuando quise probar Java 8, rápidamente descubrí que necesitaba instalarlo primero. Después de que lo instalé, logré cambiar JRE 8 al predeterminado.

Mi pregunta es: ¿Por qué puedo usar la nueva API de fecha y hora, pero no puedo usar las nuevas expresiones Lambda?

Alguna información que podría ser útil:

  • Estoy usando una Mac
  • Estoy muy seguro de que la API de tiempo funciona (incluso el pequeño Doc Doc de Java dice que es desde la versión 1.8)

¿Podría tener algo que ver con el hecho de que no instalé Eclipse con Java 8 incluido?


En primer lugar, no necesita usar Luna; hay un parche de características para Kepler que funciona bien.

En segundo lugar, la parte de "compatibilidad de origen" del cuadro de diálogo Compilador de Java debe ser 1.8. De lo contrario, aunque tenga permiso para usar las funciones de biblioteca de Java 1.8, no podrá usar las funciones de idioma . (No son solo lambdas, por ejemplo, hay referencias a métodos, métodos estáticos en interfaces y métodos predeterminados). Aquí es donde buscar:

Sería raro que quisieras usar las características de la biblioteca desde 1.8 pero mantengas la compatibilidad de fuente / archivo con 1.7 o anterior, pero creo que podría ser útil si estuvieras escribiendo el código necesario para ejecutar en varios JRE, pero podrías tener algunas implementaciones de funciones que requerían Java 1.8 y simplemente no se utilizarían en JRE anteriores.