No he utilizado Java desde hace bastante tiempo, y hoy he querido volver a empezar a usarlo. Así que al día mi IDE (IntelliJ IDEA) a 01.03.2019 versión 1 , y he descargado Java 12 . Entonces procedí a desinstalar mi viejo Java 8 (y he eliminado la carpeta con el SDK de Java 8 de mi PC con Windows 10).
Entonces abrí IntelliJ IDEA, File -> Project Structure... -> Project -> Edit (Project SDK)
y no he seleccionado la carpeta en la que acababa de Java instalado 12 ( C:\Program Files\Java\jdk-12.0.1
). En la misma ventana donde he editado el conjunto SDK I Project language level
a 12 - no new language features
.
Luego fui a File -> Project structure -> Modules -> Dependencies
y comprobé que Module SDK
cambió a 12 - no new language features
. Y de hecho lo hizo.
He hecho clic en Apply
y, a continuación OK
.
Luego fui a File -> Settings... -> Build, Execution, Deployment -> Compiler -> Java Compiler
y me puse Project bytecode version
a 12
.
He hecho clic en Apply
y, a continuación OK
.
Cerré IntelliJ IDEA y apagar mi PC. Entonces me di la espalda PC en IntelliJ IDEA, que volvió a abrir, me escribió var
y me dijo IntelliJ IDEA: Cannot resolve symbol 'var'
.
He encontrado una gran cantidad de gente con mi problema mediante la búsqueda en Google, pero ninguno de ellos realmente logrado resolver mi problema. Aquí hay algunas dudas sobre el desbordamiento de la pila ya he leído:
- IntelliJ IDE (versión de la comunidad) no admite la declaración var Java 10
- IntelliJ IDEA sin finalización de código para Java 10 'var'?
- problema en tiempo de compilación cuando se utiliza "var" en el JDK 11
- https://intellij-support.jetbrains.com/hc/en-us/community/posts/206967605-IntelliJ-does-not-recognize-java-symbols-
- Variable local Inferencia de tipos no ser reconocido
- IDEA: javac: liberación fuente 1.7 requiere la liberación objetivo 1.7
1
IntelliJ IDEA 01/03/2019 (Community Edition)
Build # IC-191.7479.19, construida el 28 de mayo, 2019
JRE: 1.8.0_202-release-1483-B58 amd64
JVM: OpenJDK 64 bits del servidor VM por JetBrains sro
Windows 10 10,0
Bien, el problema es que soy perezoso y que, en mi humilde opinión, el mensaje de error mostrado por IntelliJ IDEA no es muy precisa.
Traté de construir el proyecto, y en el registro de recibo un mensaje de error diferente: Java 'var' is not allowed here.
Por supuesto var
no se le permite deducir el tipo a un campo de clase, pero cuando me tryed en un método, todo está bien.
Mi culpa, yo quería comprobar muy rápido si el interruptor 12 a Java ha ocurrido y no pensé que no podía usar esa construcción en ese lugar. Por cierto IntelliJ IDEA debería haber me mostró inmediatamente la razón "exacta" de la cuestión.
Debería haber sido más cuidadoso, muchas gracias a @TituBG, @JacobG. y @VinceEmigh por su tiempo!