Estaba probando algunas características nuevas de Java 8 y copié el ejemplo en mi IDE (Eclipse originalmente, luego IntelliJ) como se muestra aquí
Eclipse no ofreció soporte alguno para las expresiones lambda, e IntelliJ siguió informando un error
No se admiten expresiones lambda en este nivel de idioma
Me gustaría saber si esto es un problema con mi instalación, el código o el soporte.
java
intellij-idea
lambda
java-8
Czipperz
fuente
fuente
Respuestas:
En IntelliJ IDEA:
En
File Menu
→Project Structure
→Project
, cambieProject Language Level
a8.0 - Lambdas, type annotations etc.
Para Android 3.0+ Vaya
File
→Project Structure
→Module
→app
y en el conjunto de pestañas PropiedadesSource Compatibility
yTarget Compatibility
a1.8 (Java 8)
Captura de pantalla:
fuente
File Menu → Project Structure → Modules
, pero de forma predeterminada será el mismo que el nivel de idioma del proyecto.android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
File
->Project Structure
->Module you want to support lambdas
y configure la compatibilidad de origen y la compatibilidad de destino en 1.8Debe cambiar el nivel de idioma del código fuente también en la pestaña Fuente (parte de Módulos).
fuente
Esta solución funciona en Android Studio 3.0 o posterior.
Cambiar tanto de
Source Compatibility
comoTarget Compatibility
a1.8
También puede configurarlo directamente en el archivo build.gradle correspondiente
fuente
Para intellij 13, simplemente cambie el nivel de idioma del Proyecto en sí
8.0
con la siguiente navegación.Nivel de módulo lang
También tuve que actualizar
Modules lang level
cuando no había ningún complemento de Mavenjava compiler
.Pero esto
Module lang level
se solucionaría automáticamente si ya hay unmaven plugin
para ello,Después de los cambios todo se ve bien
fuente
En Android Studio Canary Build (3. +), puede hacer lo siguiente:
Archivo -> Estructura del proyecto -> Buscar en la sección Módulos, hay nombres de módulos de su clase. Haga clic en el módulo en el que desea actualizar Java a la versión 1.8. -> Cambie "Compatibilidad de origen" y "Compatibilidad de destino" a 1.8 de 1.7 o inferior. No cambies nada más. -> Haga clic en Aplicar
ahora gradle se volverá a sincronizar y se eliminará su error.
fuente
Simplemente agregue la
compileOptions
aplicación build.gradle:fuente
Para los últimos usuarios que usan Android studio 3.0.1 o superior. Simplemente haga clic en Alt + Intro y actualice su nivel de idioma a 8.0 - Lambdas, escriba anotaciones, etc.
fuente
Si obtiene No admitido en el Idioma 5 , verifique esto: (Para mí estaba en la sección Módulos )
fuente
7.0 no admite expresiones lambda. Simplemente agregue esto a su aplicación gradle para cambiar su nivel de idioma a 8.0:
fuente
En realidad, el soporte de Eclipse para Java 8 está disponible: vea aquí y aquí .
fuente
Para compilar con Java 8 (lambdas, etc.) en IntelliJ IDEA 15;
CTRL + ALT + SHIFT + S
o Archivo / Estructura del proyectoAbrir pestaña Proyecto
Configure Project SDK en la versión compatible de Java (1.8)
Establecer el nivel de idioma del proyecto en 8
Abrir la pestaña Módulos
Establezca el nivel de idioma en 8, haga clic en Aceptar
CTRL + ALT + S
o Archivo / ConfiguraciónCompilación, ejecución, implementación / compilador / compilador Java
Cambie la versión de código de bytes de destino a 1.8, haga clic en Aceptar
fuente
Utilizando: IntelliJ IDEA 2017.1.4 Build # IU-171.4694.23
Cambiar el nivel de idioma a través de la pestaña Configuración del proyecto / Proyecto no hizo nada. En su lugar, presione Alt+ Entery seleccione "Establecer nivel de idioma en 8 - Lambdas, escriba anotaciones, etc." y se resolvió automáticamente.
fuente
Como señaló Stephen C, Eclipse Kepler (4.3) tiene soporte para Java 8 cuando se instala el parche (instrucciones de instalación aquí )
Una vez instalado, deberá indicar a sus proyectos que usen Java 8. Primero agregue el JDK para eclipsar:
Luego dígale al proyecto que use JDK 1.8:
fuente
Verifique la configuración a continuación:
Archivo-> Estructura del proyecto-> Ficha Proyecto.
Archivo-> Estructura del proyecto-> Módulos.
Archivo-> Configuración (u Otras configuraciones-> Preferencia para nuevos proyectos en la nueva versión de Idea)
Su problema puede caer en cualquiera de las categorías definidas anteriormente.
fuente
El mismo proyecto (
Android Studio 3.3.2
,gradle-4.10.1-all.zip
,compileSdkVersion 28
,buildToolsVersion '28.0.3'
) trabaja muy bien en la nueva máquina rápida de Windows y subrayadoJava 8
cosas por el color rojo en la vieja Ubuntu 18.04 portátil (no obstante proyecto está recopilando y sin errores en Ubuntu).Las dos únicas cosas que he cambiado para obligarlo a dejar de subrayar en rojo fueron excluir
incremental true
ydexOptions
en el
app
nivelbuild.gradle
.fuente
En intellij 14, la siguiente configuración funcionó para mí. Configuración de Intellij14
fuente
Incluso después de aplicar las configuraciones específicas del proyecto definidas anteriormente en IntelliJ y Eclipse, ¡todavía me fallaba!
lo que funcionó para mí fue la adición del complemento maven con fuente y destino con configuración 1.8 en POM XML:
fuente
Causa posible n. ° 1 (igual que las 3 primeras respuestas a esta pregunta): Configuración de la estructura del proyecto
Archivo> Estructura del proyecto> En Configuración del proyecto, vaya a Proyecto> configure el SDK del proyecto en 1.8 (con la versión 65 o superior, la última es la 112) y configure el Nivel de idioma del proyecto en 8.
Archivo> Estructura del proyecto> En Configuración de la plataforma, vaya a Proyecto> asegúrese de que su ruta de inicio JDK esté configurada en 1.8 (con la versión 65 o superior, la última es la 112).
Si lo anterior no funciona, verifique la versión de código de bytes de destino de su compilador y continúe con la Causa Posible # 2.
Posible causa # 2: compilador
Los mejores deseos :)
fuente
Para mí, ninguna de las soluciones proporcionadas funcionó.
Este debería ser su último recurso: -> Abra el archivo .iml de su proyecto, cambie LANGUAGE_LEVEL a JDK_1_8 o la versión que desee. -> Si esto no ayudó, debe seleccionar "JDK" en el directorio raíz del proyecto y buscar el archivo que contiene la configuración de la versión y configurarlo en su versión preferida.
fuente
Ctrl + Alt + Shift + S y luego desde el proyecto seleccione el nivel de idioma 1.8, lea más sobre las expresiones Lambda aquí
fuente
Para tener soporte de Ecplise para expresiones lambda:
fuente
Primero verifique la versión de JDK que está utilizando, debe ser superior a 1.8.
Si es así, continúe con los pasos a continuación.
Cambiar el nivel de idioma del proyecto y los módulos en Intellij .
Proyecto
fuente
esto no funciona para nuevos intelliJ actualizados ... para nuevos intelliJ ..
Vaya a -> archivo -> Estructura del proyecto -> Bibliotecas globales ==> establecido en JDK 1.8 o una versión superior.
también Archivo -> estructura del proyecto ---> proyectos ===> establezca el "manual del idioma del proyecto" en 8
también File -> project Structure ---> project sdk ==> 1.8
Esto debería habilitar la expresión lambda para su proyecto.
fuente