无法识别本地变量类型推断

时间:2018-03-30 20:30: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);
    }
}

我在这里遗漏了一些明显的东西,或者我应该启用IntelliJ中的选项吗?

编辑:项目模块 SDK和语言级别都设置为Java 10安装和lvl。 10(虽然不是X - experimental级别)。

4 个答案:

答案 0 :(得分:4)

显然,虽然IDE的硬重启是不够的,但是通过在项目和模块上将语言级别设置为X - Experimental features一次,然后将其重新设置为lvl。 10 足以让IDE恢复正常。

我想我应该相信@CrazyCoder在这里给我这个想法,即使是间接的。

答案 1 :(得分:1)

在Settings / Build / Compiler / Java Compiler中,您必须在每个模块中将“目标字节码版本”更改为10.

答案 2 :(得分:0)

我在网上搜索了一会儿,我发现IntelliJ完全支持它。您是否检查过您在IntelliJ上运行的SDK版本是否排在第10位? 您可以转到项目结构 Alt + Shift + Ctrl + S ), SDKS 进行检查。如果您在面板左侧看不到标签 10.0 ,请从此处手动添加加号按钮。 希望这会有所帮助。

答案 3 :(得分:0)

您的代码在基于 2018年3月27日MacOS IntelliJ 2018.1上的Java10中运行良好。

  

IntelliJ IDEA 2018.1(社区版)   Build#IC-181.4203.550,建于2018年3月27日

您的IntelliJ或struct node *temp1 = head->next, *temp2; while (temp1 != head) { temp2 = temp1->next; free(temp1); temp1 = temp2; } free (head); head = NULL; 可能有错误。尝试使用终端中的JDK代替。如果可以的话,应该更新你的IntelliJ。如果不能,应检查已安装的jshell。我机器上的版本:

  

" 10"二零一八年三月二十零日   Java(TM)SE运行时环境18.3(版本10 + 46)