Java 无法识别局部变量类型推断
我安装JDK 10是为了尝试新功能,我在Java 无法识别局部变量类型推断,java,intellij-idea,var,java-10,Java,Intellij Idea,Var,Java 10,我安装JDK 10是为了尝试新功能,我在var上遇到了一个很大的问题-出于某种原因,即使JDK被添加到IntelliJ(版本2018.1),以下代码仍然无法编译,表示Java找不到符号var: public class Variations { public static void main(String[] args) { var local = "foo"; System.out.println(local); } } 我是否遗漏了一些显而易
var
上遇到了一个很大的问题-出于某种原因,即使JDK被添加到IntelliJ(版本2018.1),以下代码仍然无法编译,表示Java找不到符号var
:
public class Variations {
public static void main(String[] args) {
var local = "foo";
System.out.println(local);
}
}
我是否遗漏了一些显而易见的东西,或者IntelliJ中是否有我应该启用的选项
编辑:项目和模块SDK以及语言级别都设置为Java10安装和lvl。10(虽然不是实验性的
X级别)。我在网上搜索了一会儿,发现IntelliJ完全支持它。您是否检查过IntelliJ上运行的SDK版本是否为第10个?
您可以通过转到项目结构(Alt+Shift+Ctrl+S),SDK来检查它。从这里开始,如果在面板左侧看不到标签10.0,只需使用加号按钮手动添加即可。
希望这会有所帮助。显然,尽管IDE的硬重启是不够的,但在项目和模块上都将语言级别设置为X-实验特性一次,然后将其重新设置为lvl。10足以使IDE恢复正常
我想我应该感谢@CrazyCoder在这里给了我这个想法,即使是间接的。你的代码在我于2018年3月27日构建的Java 10上运行良好
IntelliJ IDEA 2018.1(社区版)
建造#IC-181.4203.550,建造于2018年3月27日
您的IntelliJ或JDK
可能有错误。试着从终端使用jshell
。如果可以,应该更新您的IntelliJ。如果不能,请检查已安装的JDK
。我的计算机上的版本:
“10”2018-03-20
Java(TM)SE运行时环境18.3(构建10+46)
在Settings/Build/Compiler/Java Compiler中,您必须在每个模块中将“目标字节码版本”更改为10。当然,我将其设置为Project SDK,并且我将语言级别设置为10-根据所有的说明和推理,它应该支持它,并且应该编译此代码。检查JDK10是否用于项目和所有模块。所有模块的语言级别也应设置为10,请参阅相关屏幕截图。@CrazyCoder不幸的是,这些都很好-这也是我的第一个想法(我确实必须更改它们),但重建也没有帮助。不过,我会将此添加到问题中,因为这是一个有效点。请尝试文件|无效缓存|无效并重新启动。删除IDE配置()并从头开始设置JDK。如果问题仍然存在,请分享。解释他为什么应该这样做也会有帮助。是的,这是我做的第一件事。显然,我必须将语言级别提高到10级以上,然后再降低一次,这使IDE恢复正常。